Rename packages from openecomp to onap.

This task is all about package name space change also make changes to pom for common module

Change-Id: Ie9bda0f958a9a05826c0374830cc9cb7d6d196b6
Issue-ID: SDC-1272
Signed-off-by: amitjai <amitjai@amdocs.com>
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/pom.xml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/pom.xml
new file mode 100644
index 0000000..c6d022e
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/pom.xml
@@ -0,0 +1,133 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <name>onap-sdc-artifact-generator-api</name>
+    <artifactId>onap-sdc-artifact-generator-api</artifactId>
+
+    <parent>
+        <artifactId>onap-common-lib</artifactId>
+        <groupId>org.onap.sdc.common</groupId>
+        <version>1.2.0-SNAPSHOT</version>
+        <relativePath>../../</relativePath>
+    </parent>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.openecomp.sdc</groupId>
+            <artifactId>openecomp-sdc-logging-api</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.openecomp.sdc</groupId>
+            <artifactId>openecomp-sdc-logging-core</artifactId>
+            <version>${project.version}</version>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+            <version>1.7.10</version>
+        </dependency>
+        <dependency>
+            <groupId>ch.qos.logback</groupId>
+            <artifactId>logback-classic</artifactId>
+            <version>${logback.version}</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>ch.qos.logback</groupId>
+            <artifactId>logback-core</artifactId>
+            <version>${logback.version}</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-databind</artifactId>
+            <version>${jackson.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.dataformat</groupId>
+            <artifactId>jackson-dataformat-yaml</artifactId>
+            <version>${jackson.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>commons-codec</groupId>
+            <artifactId>commons-codec</artifactId>
+            <version>${commons.codec.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.reflections</groupId>
+            <artifactId>reflections</artifactId>
+            <version>${org.reflections.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.testng</groupId>
+            <artifactId>testng</artifactId>
+            <scope>test</scope>
+            <version>6.8.5</version>
+            <exclusions>
+                <exclusion>
+                    <artifactId>snakeyaml</artifactId>
+                    <groupId>org.yaml</groupId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+            <version>${junit.version}</version>
+        </dependency>
+
+    </dependencies>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.jvnet.jaxb2.maven2</groupId>
+                <artifactId>maven-jaxb2-plugin</artifactId>
+                <version>${mvn.jaxb2.version}</version>
+                <executions>
+                    <execution>
+                        <phase>generate-sources</phase>
+                        <goals>
+                            <goal>generate</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                <configuration>
+                    <schemaDirectory>src/main/resources</schemaDirectory>
+                    <generatePackage>org.onap.sdc.generator.aai.xml</generatePackage>
+                    <generateDirectory>target/generated-sources/custom/aai/xml</generateDirectory>
+                    <removeOldOutput>false</removeOldOutput>
+                    <cleanPackageDirectories>true</cleanPackageDirectories>
+                    <forceRegenerate>false</forceRegenerate>
+                    <debug>false</debug>
+                    <verbose>false</verbose>
+                    <schemaIncludes>
+                        <include>aai_schema_v11.xsd</include>
+                    </schemaIncludes>
+                    <extension>true</extension>
+                    <args>
+                        <arg>-Xannotate</arg>
+                    </args>
+                    <plugins>
+                        <plugin>
+                            <groupId>org.jvnet.jaxb2_commons</groupId>
+                            <artifactId>jaxb2-basics-annotate</artifactId>
+                            <version>0.6.4</version>
+                        </plugin>
+                        <!-- Add the dependencies with your annotations as 'plugins' below -->
+                        <plugin>
+                            <groupId>org.jvnet.jaxb2_commons</groupId>
+                            <artifactId>jaxb2-annotate-plugin-test-annox-annotations</artifactId>
+                            <version>1.0.0</version>
+                        </plugin>
+                    </plugins>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+
+</project>
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/AaiModelGenerator.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/AaiModelGenerator.java
new file mode 100644
index 0000000..5c81ff5
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/AaiModelGenerator.java
@@ -0,0 +1,62 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.aai;
+
+import org.onap.sdc.generator.data.GeneratorConstants;
+import org.onap.sdc.generator.aai.model.Resource;
+import org.onap.sdc.generator.aai.model.Service;
+import org.onap.sdc.generator.logging.CategoryLogLevel;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.slf4j.MDC;
+
+import java.io.StringWriter;
+
+public interface AaiModelGenerator {
+
+  /**
+   * Gets instance.
+   *
+   * @return the instance
+   */
+  public static AaiModelGenerator getInstance() {
+    Logger log = LoggerFactory.getLogger(AaiModelGenerator.class.getName());
+    try {
+      return AaiModelGenerator.class.cast(
+          Class.forName("org.onap.sdc.generator.aai.AaiModelGeneratorImpl").newInstance());
+    } catch (Exception exception) {
+      MDC.put(GeneratorConstants.PARTNER_NAME, GeneratorConstants.GENERATOR_PARTNER_NAME);
+      MDC.put(GeneratorConstants.ERROR_CATEGORY, CategoryLogLevel.ERROR.name());
+      MDC.put(GeneratorConstants.ERROR_CODE, GeneratorConstants.GENERATOR_ERROR_CODE);
+      MDC.put(
+          GeneratorConstants.ERROR_DESCRIPTION, GeneratorConstants.GENERATOR_ERROR_SERVICE_INSTANTIATION_FAILED);
+      StringWriter sw = new StringWriter();
+      log.error(sw.toString(), exception);
+    }
+    return null;
+  }
+
+  public String generateModelFor(Service service);
+
+  public String generateModelFor(Resource resource);
+
+
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/AllotedResource.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/AllotedResource.java
new file mode 100644
index 0000000..c638939
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/AllotedResource.java
@@ -0,0 +1,29 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.aai.model;
+
+import org.onap.sdc.generator.aai.types.Cardinality;
+import org.onap.sdc.generator.aai.types.Model;
+
+@Model(widget = Widget.Type.ALLOTTED_RESOURCE, cardinality = Cardinality.UNBOUNDED,
+    dataDeleteFlag = true)
+public class AllotedResource extends Resource {
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/AllotedResourceWidget.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/AllotedResourceWidget.java
new file mode 100644
index 0000000..88cdaa6
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/AllotedResourceWidget.java
@@ -0,0 +1,33 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.aai.model;
+
+import org.onap.sdc.generator.aai.types.Cardinality;
+import org.onap.sdc.generator.aai.types.Model;
+import org.onap.sdc.generator.aai.types.ModelType;
+import org.onap.sdc.generator.aai.types.ModelWidget;
+
+
+@Model(widget = Widget.Type.ALLOTTED_RESOURCE, cardinality
+    = Cardinality.UNBOUNDED, dataDeleteFlag = true)
+@ModelWidget(type = ModelType.WIDGET, name = "allotted-resource")
+public class AllotedResourceWidget extends ResourceWidget {
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/FlavorWidget.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/FlavorWidget.java
new file mode 100644
index 0000000..a427918
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/FlavorWidget.java
@@ -0,0 +1,32 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.aai.model;
+
+import org.onap.sdc.generator.aai.types.Cardinality;
+import org.onap.sdc.generator.aai.types.ModelType;
+import org.onap.sdc.generator.aai.types.Model;
+import org.onap.sdc.generator.aai.types.ModelWidget;
+
+@Model(widget = Widget.Type.FLAVOR, cardinality = Cardinality.UNBOUNDED, dataDeleteFlag = false)
+@ModelWidget(type = ModelType.WIDGET, name = "flavor")
+public class FlavorWidget extends ResourceWidget {
+
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/ImageWidget.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/ImageWidget.java
new file mode 100644
index 0000000..52a52fc
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/ImageWidget.java
@@ -0,0 +1,33 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.aai.model;
+
+import org.onap.sdc.generator.aai.types.Cardinality;
+import org.onap.sdc.generator.aai.types.ModelType;
+import org.onap.sdc.generator.aai.types.Model;
+import org.onap.sdc.generator.aai.types.ModelWidget;
+
+@Model(widget = Widget.Type.IMAGE, cardinality = Cardinality.UNBOUNDED, dataDeleteFlag = false)
+@ModelWidget(type = ModelType.WIDGET, name = "image")
+public class ImageWidget extends ResourceWidget {
+
+}
+ 
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/L3Network.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/L3Network.java
new file mode 100644
index 0000000..98713c0
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/L3Network.java
@@ -0,0 +1,29 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.aai.model;
+
+import org.onap.sdc.generator.aai.types.Cardinality;
+import org.onap.sdc.generator.aai.types.Model;
+
+@Model(widget = Widget.Type.L3_NET, cardinality = Cardinality
+    .UNBOUNDED, dataDeleteFlag = false)
+public class L3Network extends Resource{
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/L3NetworkWidget.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/L3NetworkWidget.java
new file mode 100644
index 0000000..4b59e99
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/L3NetworkWidget.java
@@ -0,0 +1,34 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.aai.model;
+
+import org.onap.sdc.generator.aai.types.Cardinality;
+import org.onap.sdc.generator.aai.types.Model;
+import org.onap.sdc.generator.aai.types.ModelType;
+import org.onap.sdc.generator.aai.types.ModelWidget;
+
+@Model(widget = Widget.Type.L3_NET,
+    cardinality = Cardinality.UNBOUNDED, dataDeleteFlag = true)
+@ModelWidget(type = ModelType.WIDGET, name = "l3-network")
+public class L3NetworkWidget extends Widget {
+
+}
+ 
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/LIntfWidget.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/LIntfWidget.java
new file mode 100644
index 0000000..de62624
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/LIntfWidget.java
@@ -0,0 +1,32 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.aai.model;
+
+import org.onap.sdc.generator.aai.types.Cardinality;
+import org.onap.sdc.generator.aai.types.ModelType;
+import org.onap.sdc.generator.aai.types.Model;
+import org.onap.sdc.generator.aai.types.ModelWidget;
+
+@Model(widget = Widget.Type.LINT, cardinality = Cardinality.UNBOUNDED, dataDeleteFlag = true)
+@ModelWidget(type = ModelType.WIDGET, name = "l-interface")
+public class LIntfWidget extends ResourceWidget {
+
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/Model.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/Model.java
new file mode 100644
index 0000000..ac8dffa
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/Model.java
@@ -0,0 +1,259 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.aai.model;
+
+import org.onap.sdc.generator.aai.types.Cardinality;
+import org.onap.sdc.generator.aai.types.ModelType;
+import org.onap.sdc.generator.data.GeneratorConstants;
+import org.onap.sdc.generator.error.IllegalAccessException;
+
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
+
+public abstract class Model {
+
+  protected Set<Resource> resources = new HashSet<>();
+  protected Set<Widget> widgets = new HashSet<>();
+  private String modelId;
+  private String modelName;
+  private ModelType modelType;
+  private String modelVersion;
+  private String modelNameVersionId;
+  private String modelDescription;
+
+  /**
+   * Gets model for.
+   *
+   * @param toscaType the tosca type
+   * @return the model for
+   */
+  public static Model getModelFor(String toscaType) {
+
+    Model modelToBeReturned = null;
+    while (toscaType != null && toscaType.lastIndexOf(".") != -1 && modelToBeReturned == null) {
+
+      switch (toscaType) {
+
+        case "org.openecomp.resource.vf.allottedResource":
+          modelToBeReturned = new AllotedResource();
+          break;
+        case "org.openecomp.resource.vfc.AllottedResource":
+          modelToBeReturned = new ProvidingService();
+          break;
+        case "org.openecomp.resource.vfc":
+          modelToBeReturned = new VServerWidget();
+          break;
+        case "org.openecomp.resource.cp":
+        case "org.openecomp.cp":
+          modelToBeReturned = new LIntfWidget();
+          break;
+        case "org.openecomp.resource.vl":
+          modelToBeReturned = new L3Network();
+          break;
+        case "org.openecomp.resource.vf":
+          modelToBeReturned = new VirtualFunction();
+          break;
+        case "org.openecomp.groups.vfmodule":
+        case "org.openecomp.groups.VfModule":
+          modelToBeReturned = new VfModule();
+          break;
+        case "org.openecomp.resource.vfc.nodes.heat.cinder":
+          modelToBeReturned = new VolumeWidget();
+          break;
+        default:
+          modelToBeReturned = null;
+          break;
+      }
+
+      toscaType = toscaType.substring(0, toscaType.lastIndexOf("."));
+    }
+
+    return modelToBeReturned;
+  }
+
+  public abstract boolean addResource(Resource resource);
+
+  public abstract boolean addWidget(Widget resource);
+
+  /**
+   * Gets widget version id.
+   *
+   * @return the widget version id
+   */
+  public String getWidgetId() {
+    org.onap.sdc.generator.aai.types.Model model =
+        this.getClass().getAnnotation(org.onap.sdc.generator.aai.types.Model.class);
+    return Widget.getWidget(model.widget()).getId();
+  }
+
+  /**
+   * Gets invariant id.
+   *
+   * @return the invariant id
+   */
+  public String getWidgetInvariantId() {
+    org.onap.sdc.generator.aai.types.Model model =
+        this.getClass().getAnnotation(org.onap.sdc.generator.aai.types.Model.class);
+    return Widget.getWidget(model.widget()).getWidgetId();
+  }
+
+  /**
+   * Gets delete flag.
+   *
+   * @return the delete flag
+   */
+  public boolean getDeleteFlag() {
+    org.onap.sdc.generator.aai.types.Model model =
+        this.getClass().getAnnotation(org.onap.sdc.generator.aai.types.Model.class);
+    return model.dataDeleteFlag();
+  }
+
+  /**
+   * Gets cardinality.
+   *
+   * @return the cardinality
+   */
+  public Cardinality getCardinality() {
+    org.onap.sdc.generator.aai.types.Model model =
+        this.getClass().getAnnotation(org.onap.sdc.generator.aai.types.Model.class);
+    return model.cardinality();
+  }
+
+  public abstract Widget.Type getWidgetType();
+
+  public String getModelId() {
+    checkSupported();
+    return modelId;
+  }
+
+  /**
+   * Gets model type.
+   *
+   * @return the model type
+   */
+  public ModelType getModelType() {
+    //checkSupported();
+    if (this instanceof Service) {
+      return ModelType.SERVICE;
+    } else if (this instanceof Resource) {
+      return ModelType.RESOURCE;
+    } else if (this instanceof Widget) {
+      return ModelType.WIDGET;
+    } else {
+      return null;
+    }
+  }
+
+  public String getModelName() {
+    //checkSupported();
+    return modelName;
+  }
+
+  public String getModelVersion() {
+    //checkSupported();
+    return modelVersion;
+  }
+
+  public String getModelNameVersionId() {
+    checkSupported();
+    return modelNameVersionId;
+  }
+
+  public String getModelDescription() {
+    //checkSupported();
+    return modelDescription;
+  }
+
+  /**
+   * Populate model identification information.
+   *
+   * @param modelIdentInfo the model ident info
+   */
+  public void populateModelIdentificationInformation(Map<String, String> modelIdentInfo) {
+    Iterator<String> iter = modelIdentInfo.keySet().iterator();
+    String property;
+    while (iter.hasNext()) {
+      switch (property = iter.next()) {
+
+        case "vfModuleModelInvariantUUID":
+        case "serviceInvariantUUID":
+        case "resourceInvariantUUID":
+        case "invariantUUID":
+        case "providing_service_invariant_uuid":
+          modelId = modelIdentInfo.get(property);
+          break;
+        case "vfModuleModelUUID":
+        case "resourceUUID":
+        case "serviceUUID":
+        case "UUID":
+        case "providing_service_uuid":
+          modelNameVersionId = modelIdentInfo.get(property);
+          break;
+        case "vfModuleModelVersion":
+        case "serviceVersion":
+        case "resourceversion":
+        case "version":
+          modelVersion = modelIdentInfo.get(property);
+          break;
+        case "vfModuleModelName":
+        case "serviceName":
+        case "resourceName":
+        case "name":
+          modelName = modelIdentInfo.get(property);
+          break;
+        case "serviceDescription":
+        case "resourceDescription":
+        case "vf_module_description":
+        case "description":
+          modelDescription = modelIdentInfo.get(property);
+          break;
+        case "providing_service_name":
+          modelName = modelIdentInfo.get(property);
+          modelDescription = modelIdentInfo.get(property);
+          break;
+        default:
+          break;
+      }
+      property = null;
+    }
+
+
+
+  }
+
+  public Set<Resource> getResources() {
+    return resources;
+  }
+
+  public Set<Widget> getWidgets() {
+    return widgets;
+  }
+
+  private void checkSupported() throws IllegalAccessException {
+    if (this instanceof Widget) {
+      throw new IllegalAccessException(GeneratorConstants
+          .GENERATOR_AAI_ERROR_UNSUPPORTED_WIDGET_OPERATION);
+    }
+  }
+
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/OamNetwork.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/OamNetwork.java
new file mode 100644
index 0000000..d51bf7a
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/OamNetwork.java
@@ -0,0 +1,32 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.aai.model;
+
+import org.onap.sdc.generator.aai.types.Cardinality;
+import org.onap.sdc.generator.aai.types.ModelType;
+import org.onap.sdc.generator.aai.types.ModelWidget;
+import org.onap.sdc.generator.aai.types.Model;
+
+@Model(widget = Widget.Type.L3_NET, cardinality = Cardinality.UNBOUNDED, dataDeleteFlag = true)
+@ModelWidget(type = ModelType.WIDGET, name = "oam-network")
+public class OamNetwork extends Widget {
+}
+ 
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/ProvidingService.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/ProvidingService.java
new file mode 100644
index 0000000..3f44fe9
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/ProvidingService.java
@@ -0,0 +1,30 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.aai.model;
+
+import org.onap.sdc.generator.aai.types.Cardinality;
+import org.onap.sdc.generator.aai.types.Model;
+
+@Model(widget = Widget.Type.ALLOTTED_RESOURCE, cardinality = Cardinality
+    .UNBOUNDED,
+    dataDeleteFlag = false)
+public class ProvidingService extends Resource {
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/Resource.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/Resource.java
new file mode 100644
index 0000000..6c7cbc7
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/Resource.java
@@ -0,0 +1,52 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.aai.model;
+
+public class Resource extends Model {
+
+  @Override
+  public int hashCode() {
+    return getModelNameVersionId().hashCode();
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof Resource) {
+      return getModelNameVersionId().equals(((Resource) obj).getModelNameVersionId());
+    }
+    return false;
+  }
+
+  public boolean addResource(Resource resource) {
+    return resources.add(resource);
+  }
+
+  public boolean addWidget(Widget widget) {
+    return widgets.add(widget);
+  }
+
+  @Override
+  public Widget.Type getWidgetType() {
+    org.onap.sdc.generator.aai.types.Model model =
+        this.getClass().getAnnotation(org.onap.sdc.generator.aai.types.Model.class);
+    return model.widget();
+  }
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/ResourceWidget.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/ResourceWidget.java
new file mode 100644
index 0000000..24975a2
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/ResourceWidget.java
@@ -0,0 +1,26 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.aai.model;
+
+public class ResourceWidget extends Widget {
+
+}
+ 
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/Service.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/Service.java
new file mode 100644
index 0000000..f71ff91
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/Service.java
@@ -0,0 +1,43 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.aai.model;
+
+import org.onap.sdc.generator.aai.types.Cardinality;
+
+@org.onap.sdc.generator.aai.types.Model(widget = Widget.Type.SERVICE,
+    cardinality = Cardinality.UNBOUNDED, dataDeleteFlag = true)
+public class Service extends Model {
+
+  public boolean addResource(Resource resource) {
+    return resources.add(resource);
+  }
+
+  public boolean addWidget(Widget widget) {
+    return widgets.add(widget);
+  }
+
+  @Override
+  public Widget.Type getWidgetType() {
+    return null;
+  }
+
+}
+ 
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/ServiceWidget.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/ServiceWidget.java
new file mode 100644
index 0000000..f6eb5fa
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/ServiceWidget.java
@@ -0,0 +1,30 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.aai.model;
+
+import org.onap.sdc.generator.aai.types.ModelType;
+import org.onap.sdc.generator.aai.types.ModelWidget;
+
+@ModelWidget(type = ModelType.WIDGET, name = "service-instance")
+public class ServiceWidget extends Widget {
+
+}
+ 
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/TenantWidget.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/TenantWidget.java
new file mode 100644
index 0000000..23e57be
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/TenantWidget.java
@@ -0,0 +1,33 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.aai.model;
+
+import org.onap.sdc.generator.aai.types.Cardinality;
+import org.onap.sdc.generator.aai.types.ModelType;
+import org.onap.sdc.generator.aai.types.Model;
+import org.onap.sdc.generator.aai.types.ModelWidget;
+
+@Model(widget = Widget.Type.TENANT, cardinality = Cardinality.UNBOUNDED, dataDeleteFlag = false)
+@ModelWidget(type = ModelType.WIDGET, name = "tenant")
+public class TenantWidget extends Widget {
+
+}
+ 
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/TunnelXconnectWidget.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/TunnelXconnectWidget.java
new file mode 100644
index 0000000..1a8a9fe
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/TunnelXconnectWidget.java
@@ -0,0 +1,32 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.aai.model;
+
+import org.onap.sdc.generator.aai.types.Cardinality;
+import org.onap.sdc.generator.aai.types.Model;
+import org.onap.sdc.generator.aai.types.ModelType;
+import org.onap.sdc.generator.aai.types.ModelWidget;
+
+@Model(widget = Widget.Type.TUNNEL_XCONNECT,
+    cardinality = Cardinality.UNBOUNDED, dataDeleteFlag = true)
+@ModelWidget(type = ModelType.WIDGET, name = "tunnel-xconnect")
+public class TunnelXconnectWidget extends Widget {
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/VServerWidget.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/VServerWidget.java
new file mode 100644
index 0000000..6df5bb1
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/VServerWidget.java
@@ -0,0 +1,46 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.aai.model;
+
+import org.onap.sdc.generator.aai.types.Cardinality;
+import org.onap.sdc.generator.aai.types.ModelType;
+import org.onap.sdc.generator.aai.types.Model;
+import org.onap.sdc.generator.aai.types.ModelWidget;
+
+@Model(widget = Widget.Type.VSERVER, cardinality = Cardinality.UNBOUNDED, dataDeleteFlag = true)
+@ModelWidget(type = ModelType.WIDGET, name = "vserver")
+public class VServerWidget extends Widget {
+
+  /**
+   * Instantiates a new V server widget.
+   */
+  public VServerWidget() {
+    addWidget(new FlavorWidget());
+    addWidget(new ImageWidget());
+    addWidget(new TenantWidget());
+    addWidget(new VfcWidget());
+  }
+
+  public boolean addWidget(Widget widget) {
+    return widgets.add(widget);
+  }
+
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/VfModule.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/VfModule.java
new file mode 100644
index 0000000..1b71563
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/VfModule.java
@@ -0,0 +1,81 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.aai.model;
+
+import org.onap.sdc.generator.aai.types.Cardinality;
+import org.onap.sdc.generator.aai.types.Model;
+
+import java.util.List;
+
+@Model(widget = Widget.Type.VFMODULE, cardinality = Cardinality.UNBOUNDED, dataDeleteFlag = true)
+public class VfModule extends Resource {
+
+  Widget vserver = null;
+  boolean addlintf = false;
+  boolean addvolume = false;
+
+  List<String> members;
+
+  public void setMembers(List<String> members) {
+    this.members = members;
+  }
+
+  /**
+   * Adds Widget.
+   *
+   * @param widget the widget
+   * @return the boolean
+   */
+  public boolean addWidget(Widget widget) {
+    if (widget.memberOf(members)) {
+      if (vserver == null && widget.getId().equals(new VServerWidget().getId())) {
+        vserver = widget;
+        if (addlintf) {
+          vserver.addWidget(new LIntfWidget());
+        }
+        if (addvolume) {
+          vserver.addWidget(new VolumeWidget());
+        }
+      } else if (widget.getId().equals(new LIntfWidget().getId())) {
+        if (vserver != null) {
+          vserver.addWidget(widget);
+          return true;
+        } else {
+          addlintf = true;
+        }
+        return false;
+      } else if (widget.getId().equals(new VolumeWidget().getId())) {
+        if (vserver != null) {
+          vserver.addWidget(widget);
+        } else {
+          addvolume = true;
+        }
+        return true;
+      }
+      if (widget.getId().equals(new OamNetwork().getId())) {
+        return false;
+      }
+      return widgets.add(widget);
+    }
+    return false;
+  }
+
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/VfModuleWidget.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/VfModuleWidget.java
new file mode 100644
index 0000000..9753db6
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/VfModuleWidget.java
@@ -0,0 +1,34 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.aai.model;
+
+import org.onap.sdc.generator.aai.types.Model;
+import org.onap.sdc.generator.aai.types.ModelType;
+import org.onap.sdc.generator.aai.types.Cardinality;
+import org.onap.sdc.generator.aai.types.ModelWidget;
+
+@Model(widget = Widget.Type.VFMODULE,
+    cardinality = Cardinality.UNBOUNDED, dataDeleteFlag = true)
+@ModelWidget(type = ModelType.WIDGET, name = "vf-module")
+public class VfModuleWidget extends Widget {
+
+}
+ 
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/VfWidget.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/VfWidget.java
new file mode 100644
index 0000000..20ea997
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/VfWidget.java
@@ -0,0 +1,34 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.aai.model;
+
+import org.onap.sdc.generator.aai.types.Cardinality;
+import org.onap.sdc.generator.aai.types.Model;
+import org.onap.sdc.generator.aai.types.ModelType;
+import org.onap.sdc.generator.aai.types.ModelWidget;
+
+@Model(widget = Widget.Type.VF,
+    cardinality = Cardinality.UNBOUNDED, dataDeleteFlag = true)
+@ModelWidget(type = ModelType.WIDGET, name = "generic-vnf")
+public class VfWidget extends ResourceWidget {
+
+}
+ 
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/VfcWidget.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/VfcWidget.java
new file mode 100644
index 0000000..2d08ef8
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/VfcWidget.java
@@ -0,0 +1,34 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.aai.model;
+
+import org.onap.sdc.generator.aai.types.Cardinality;
+import org.onap.sdc.generator.aai.types.Model;
+import org.onap.sdc.generator.aai.types.ModelType;
+import org.onap.sdc.generator.aai.types.ModelWidget;
+
+@Model(widget = Widget.Type.VFC,
+    cardinality = Cardinality.UNBOUNDED, dataDeleteFlag = true)
+@ModelWidget(type = ModelType.WIDGET, name = "vnfc")
+public class VfcWidget extends ResourceWidget {
+
+}
+ 
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/VirtualFunction.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/VirtualFunction.java
new file mode 100644
index 0000000..3736eba
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/VirtualFunction.java
@@ -0,0 +1,30 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.aai.model;
+
+import org.onap.sdc.generator.aai.types.Cardinality;
+import org.onap.sdc.generator.aai.types.Model;
+
+@Model(widget = Widget.Type.VF, cardinality = Cardinality.UNBOUNDED, dataDeleteFlag = true)
+public class VirtualFunction extends Resource {
+
+}
+ 
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/VolumeGroupWidget.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/VolumeGroupWidget.java
new file mode 100644
index 0000000..918cfa8
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/VolumeGroupWidget.java
@@ -0,0 +1,34 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.aai.model;
+
+import org.onap.sdc.generator.aai.types.Cardinality;
+import org.onap.sdc.generator.aai.types.Model;
+import org.onap.sdc.generator.aai.types.ModelType;
+import org.onap.sdc.generator.aai.types.ModelWidget;
+
+@Model(widget = Widget.Type.VOLUME_GROUP,
+    cardinality = Cardinality.UNBOUNDED, dataDeleteFlag = true)
+@ModelWidget(type = ModelType.WIDGET, name = "volume-group")
+public class VolumeGroupWidget extends Widget {
+
+}
+ 
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/VolumeWidget.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/VolumeWidget.java
new file mode 100644
index 0000000..e0cdac4
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/VolumeWidget.java
@@ -0,0 +1,33 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.aai.model;
+
+import org.onap.sdc.generator.aai.types.Cardinality;
+import org.onap.sdc.generator.aai.types.Model;
+import org.onap.sdc.generator.aai.types.ModelType;
+import org.onap.sdc.generator.aai.types.ModelWidget;
+
+@Model(widget = Widget.Type.VOLUME, cardinality = Cardinality.UNBOUNDED, dataDeleteFlag = true)
+@ModelWidget(type = ModelType.WIDGET, name = "volume")
+public class VolumeWidget extends ResourceWidget {
+
+}
+ 
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/Widget.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/Widget.java
new file mode 100644
index 0000000..b289b0a
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/model/Widget.java
@@ -0,0 +1,196 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.aai.model;
+
+import org.onap.sdc.generator.aai.types.ModelType;
+import org.onap.sdc.generator.data.ArtifactType;
+import org.onap.sdc.generator.data.GeneratorConstants;
+import org.onap.sdc.generator.aai.types.ModelWidget;
+import org.onap.sdc.generator.data.WidgetConfigurationUtil;
+import org.onap.sdc.generator.error.IllegalAccessException;
+
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Properties;
+import java.util.Set;
+
+public abstract class Widget extends Model {
+
+  private Set<String> keys = new HashSet<>();
+
+  /**
+   * Gets widget.
+   *
+   * @param type the type
+   * @return the widget
+   */
+  public static Widget getWidget(Type type) {
+
+    switch (type) {
+      case SERVICE:
+        return new ServiceWidget();
+      case VF:
+        return new VfWidget();
+      case VFC:
+        return new VfcWidget();
+      case VSERVER:
+        return new VServerWidget();
+      case VOLUME:
+        return new VolumeWidget();
+      case FLAVOR:
+        return new FlavorWidget();
+      case TENANT:
+        return new TenantWidget();
+      case VOLUME_GROUP:
+        return new VolumeGroupWidget();
+      case LINT:
+        return new LIntfWidget();
+      case L3_NET:
+        return new L3NetworkWidget();
+      case VFMODULE:
+        return new VfModuleWidget();
+      case IMAGE:
+        return new ImageWidget();
+      case OAM_NETWORK:
+        return new OamNetwork();
+      case ALLOTTED_RESOURCE:
+        return new AllotedResourceWidget();
+      case TUNNEL_XCONNECT:
+        return new TunnelXconnectWidget();
+      default:
+        return null;
+    }
+
+  }
+
+  /**
+   * Gets id.
+   *
+   * @return the id
+   */
+  public String getId() {
+    Properties properties = WidgetConfigurationUtil.getConfig();
+    String id = properties.getProperty(ArtifactType.AAI.name() + ".model-version-id." + getName());
+    if (id == null) {
+      throw new IllegalArgumentException(String.format(
+          GeneratorConstants.GENERATOR_AAI_CONFIGLPROP_NOT_FOUND,
+          ArtifactType.AAI.name() + ".model-version-id." + getName()));
+    }
+    return id;
+  }
+
+  public ModelType getType() {
+    ModelWidget widgetModel = this.getClass().getAnnotation(ModelWidget.class);
+    return widgetModel.type();
+  }
+
+  public String getName() {
+    ModelWidget widgetModel = this.getClass().getAnnotation(ModelWidget.class);
+    return widgetModel.name();
+  }
+
+  /**
+   * Get Widget Id from properties file.
+   * @return - Widget Id
+   */
+  public String getWidgetId() {
+    Properties properties = WidgetConfigurationUtil.getConfig();
+    String id = properties.getProperty(ArtifactType.AAI.name() + ".model-invariant-id."
+        + getName());
+    if (id == null) {
+      throw new IllegalArgumentException(String.format(
+          GeneratorConstants.GENERATOR_AAI_CONFIGLPROP_NOT_FOUND,
+          ArtifactType.AAI.name() + ".model-invariant-id." + getName()));
+    }
+    return id;
+  }
+
+  public int hashCode() {
+    return getId().hashCode();
+  }
+
+  @Override
+  public Type getWidgetType() {
+    return null;
+  }
+
+  /**
+   * Equals.
+   *
+   * @param obj Object
+   * @return the boolean
+   */
+  public boolean equals(Object obj) {
+    if (obj instanceof Widget) {
+      if (getId().equals(((Widget) obj).getId())) {
+        ((Widget) obj).keys.addAll(this.keys);
+        return true;
+      }
+      return false;
+    } else {
+      return false;
+    }
+  }
+
+  public void addKey(String key) {
+    this.keys.add(key);
+  }
+
+  /**
+   * Member of boolean.
+   *
+   * @param keys the keys
+   * @return the boolean
+   */
+  public boolean memberOf(List<String> keys) {
+    if (keys == null) {
+      return false;
+    }
+    return !Collections.disjoint(this.keys, keys);
+  }
+
+  /**
+   * All instances used boolean.
+   *
+   * @param collection the collection
+   * @return the boolean
+   */
+  public boolean allInstancesUsed(Set<String> collection) {
+    Set<String> keyCopy = new HashSet<>(keys);
+    keyCopy.removeAll(collection);
+    return keyCopy.isEmpty();
+  }
+
+  public boolean addResource(Resource resource) {
+    throw new IllegalAccessException(GeneratorConstants
+        .GENERATOR_AAI_ERROR_UNSUPPORTED_WIDGET_OPERATION);
+  }
+
+  public boolean addWidget(Widget widget) {
+    return true;
+  }
+
+  public enum Type {
+    SERVICE, VF, VFC, VSERVER, VOLUME, FLAVOR, TENANT, VOLUME_GROUP, LINT, L3_NET, VFMODULE, IMAGE,
+    OAM_NETWORK,ALLOTTED_RESOURCE,TUNNEL_XCONNECT
+  }
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/tosca/CapabilityAssignment.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/tosca/CapabilityAssignment.java
new file mode 100644
index 0000000..99f9771
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/tosca/CapabilityAssignment.java
@@ -0,0 +1,45 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.aai.tosca;
+
+import java.util.Map;
+
+public class CapabilityAssignment {
+
+  private Map<String, Object> properties;
+  private Map<String, Object> attributes;
+
+  public Map<String, Object> getProperties() {
+    return properties;
+  }
+
+  public void setProperties(Map<String, Object> properties) {
+    this.properties = properties;
+  }
+
+  public Map<String, Object> getAttributes() {
+    return attributes;
+  }
+
+  public void setAttributes(Map<String, Object> attributes) {
+    this.attributes = attributes;
+  }
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/tosca/GroupDefinition.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/tosca/GroupDefinition.java
new file mode 100644
index 0000000..8892eeb
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/tosca/GroupDefinition.java
@@ -0,0 +1,73 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.aai.tosca;
+
+import java.util.List;
+import java.util.Map;
+
+public class GroupDefinition {
+
+  private String type;
+  private String description;
+  private Map<String, Object> properties;
+  private List<String> members;
+  private Map<String, String> metadata;
+
+  public String getType() {
+    return type;
+  }
+
+  public void setType(String type) {
+    this.type = type;
+  }
+
+  public String getDescription() {
+    return description;
+  }
+
+  public void setDescription(String description) {
+    this.description = description;
+  }
+
+  public Map<String, Object> getProperties() {
+    return properties;
+  }
+
+  public void setProperties(Map<String, Object> properties) {
+    this.properties = properties;
+  }
+
+  public List<String> getMembers() {
+    return members;
+  }
+
+  public void setMembers(List<String> members) {
+    this.members = members;
+  }
+
+  public Map<String, String> getMetadata() {
+    return metadata;
+  }
+
+  public void setMetadata(Map<String, String> metadata) {
+    this.metadata = metadata;
+  }
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/tosca/NodeTemplate.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/tosca/NodeTemplate.java
new file mode 100644
index 0000000..d58d9e0
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/tosca/NodeTemplate.java
@@ -0,0 +1,82 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.aai.tosca;
+
+import java.util.List;
+import java.util.Map;
+
+public class NodeTemplate {
+
+  private String type;
+  private String description;
+  private Map<String, String> metadata;
+  private Map<String, Object> properties;
+  private List<Map<String, RequirementAssignment>> requirements;
+  private Map<String, CapabilityAssignment> capabilities;
+
+  public String getType() {
+    return type;
+  }
+
+  public void setType(String type) {
+    this.type = type;
+  }
+
+  public String getDescription() {
+    return description;
+  }
+
+  public void setDescription(String description) {
+    this.description = description;
+  }
+
+  public Map<String, Object> getProperties() {
+    return properties;
+  }
+
+  public void setProperties(Map<String, Object> properties) {
+    this.properties = properties;
+  }
+
+  public List<Map<String, RequirementAssignment>> getRequirements() {
+    return requirements;
+  }
+
+  public void setRequirements(List<Map<String, RequirementAssignment>> requirements) {
+    this.requirements = requirements;
+  }
+
+  public Map<String, CapabilityAssignment> getCapabilities() {
+    return capabilities;
+  }
+
+  public void setCapabilities(Map<String, CapabilityAssignment> capabilities) {
+    this.capabilities = capabilities;
+  }
+
+  public Map<String, String> getMetadata() {
+    return metadata;
+  }
+
+  public void setMetadata(Map<String, String> metadata) {
+    this.metadata = metadata;
+  }
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/tosca/RequirementAssignment.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/tosca/RequirementAssignment.java
new file mode 100644
index 0000000..20d36a4
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/tosca/RequirementAssignment.java
@@ -0,0 +1,53 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.aai.tosca;
+
+public class RequirementAssignment {
+
+  private String capability;
+  private String node;
+  private String relationship;
+
+  public String getCapability() {
+    return capability;
+  }
+
+  public void setCapability(String capability) {
+    this.capability = capability;
+  }
+
+  public String getNode() {
+    return node;
+  }
+
+  public void setNode(String node) {
+    this.node = node;
+  }
+
+  public String getRelationship() {
+    return relationship;
+  }
+
+  public void setRelationship(String relationship) {
+    this.relationship = relationship;
+  }
+
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/tosca/TopologyTemplate.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/tosca/TopologyTemplate.java
new file mode 100644
index 0000000..124c55c
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/tosca/TopologyTemplate.java
@@ -0,0 +1,71 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.aai.tosca;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+public class TopologyTemplate {
+
+  private String description;
+  private Map<String, NodeTemplate> node_templates;
+  private Map<String, GroupDefinition> groups;
+
+
+  public String getDescription() {
+    return description;
+  }
+
+  public void setDescription(String description) {
+    this.description = description;
+  }
+
+  public Map<String, GroupDefinition> getGroups() {
+    return groups;
+  }
+
+  public void setGroups(Map<String, GroupDefinition> groups) {
+    this.groups = groups;
+  }
+
+  public Map<String, NodeTemplate> getNode_templates() {
+    return node_templates;
+  }
+
+  public void setNode_templates(Map<String, NodeTemplate> node_templates) {
+    this.node_templates = node_templates;
+  }
+
+  /**
+   * Add group.
+   *
+   * @param groupKey        the group key
+   * @param groupDefinition the group definition
+   */
+  public void addGroup(String groupKey, GroupDefinition groupDefinition) {
+    if (Objects.isNull(this.groups)) {
+      this.groups = new HashMap<>();
+    }
+    this.groups.put(groupKey, groupDefinition);
+  }
+
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/tosca/ToscaTemplate.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/tosca/ToscaTemplate.java
new file mode 100644
index 0000000..d92b826
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/tosca/ToscaTemplate.java
@@ -0,0 +1,82 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.aai.tosca;
+
+import java.util.Map;
+
+public class ToscaTemplate {
+  private String toscaDefinitionsVersion;
+  private Map<String, String> metadata;
+  private String description;
+  private TopologyTemplate topology_template;
+
+  public String getToscaDefinitionsVersion() {
+    return toscaDefinitionsVersion;
+  }
+
+  public void setToscaDefinitionsVersion(String toscaDefinitionsVersion) {
+    this.toscaDefinitionsVersion = toscaDefinitionsVersion;
+  }
+
+  public Map<String, String> getMetadata() {
+    return metadata;
+  }
+
+  public void setMetadata(Map<String, String> metadata) {
+    this.metadata = metadata;
+  }
+
+  public String getDescription() {
+    return description;
+  }
+
+  public void setDescription(String description) {
+    this.description = description;
+  }
+
+  public TopologyTemplate getTopology_template() {
+    return topology_template;
+  }
+
+  public void setTopology_template(TopologyTemplate topology_template) {
+    this.topology_template = topology_template;
+  }
+
+  /**
+   * Is Service.
+   *
+   * @return the boolean
+   */
+  public boolean isService() {
+    return metadata.containsKey("serviceUUID")
+        || ("Service".equalsIgnoreCase(metadata.get("Type"))
+            || ("Service".equalsIgnoreCase(metadata.get("type"))));
+  }
+
+  public String getModelId() {
+    return metadata.get("invariantUUID");
+  }
+
+  public String getModelVersionId() {
+    return metadata.get("UUID");
+  }
+
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/types/Cardinality.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/types/Cardinality.java
new file mode 100644
index 0000000..be7c945
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/types/Cardinality.java
@@ -0,0 +1,26 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.aai.types;
+
+public enum Cardinality {
+
+  UNBOUNDED
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/types/Model.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/types/Model.java
new file mode 100644
index 0000000..73407a5
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/types/Model.java
@@ -0,0 +1,55 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.aai.types;
+
+import org.onap.sdc.generator.aai.model.Widget.Type;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Target(ElementType.TYPE)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Model {
+
+  /**
+   * Widget widget . type.
+   *
+   * @return the widget . type
+   */
+  public Type widget();
+
+  /**
+   * Data delete flag boolean.
+   *
+   * @return the boolean
+   */
+  public boolean dataDeleteFlag();
+
+  /**
+   * Cardinality cardinality.
+   *
+   * @return the cardinality
+   */
+  public Cardinality cardinality();
+
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/types/ModelType.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/types/ModelType.java
new file mode 100644
index 0000000..90da359
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/types/ModelType.java
@@ -0,0 +1,47 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.aai.types;
+
+public enum ModelType {
+  SERVICE, RESOURCE, WIDGET;
+
+  /**
+   * Gets model type.
+   *
+   * @param modelType the model type
+   * @return the model type
+   */
+  public static ModelType getModelType(String modelType) {
+    if (modelType != null) {
+      switch (modelType.toLowerCase()) {
+        case "service":
+          return SERVICE;
+        case "resource":
+          return RESOURCE;
+        case "widget":
+          return WIDGET;
+        default:
+          return null;
+      }
+    }
+    return null;
+  }
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/types/ModelWidget.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/types/ModelWidget.java
new file mode 100644
index 0000000..6ce1645
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/aai/types/ModelWidget.java
@@ -0,0 +1,46 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.aai.types;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Target(ElementType.TYPE)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface ModelWidget {
+
+  /**
+   * Type model type.
+   *
+   * @return the model type
+   */
+  public ModelType type();
+
+  /**
+   * Name string.
+   *
+   * @return the string
+   */
+  public String name();
+
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/data/AdditionalParams.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/data/AdditionalParams.java
new file mode 100644
index 0000000..d9cfade
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/data/AdditionalParams.java
@@ -0,0 +1,39 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.data;
+
+
+public enum AdditionalParams {
+  ServiceVersion("serviceVersion");
+
+  private String name;
+
+  AdditionalParams(String name) {
+    this.name = name;
+  }
+
+  public String getName() {
+    return name;
+  }
+}
+
+
+
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/data/Artifact.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/data/Artifact.java
new file mode 100644
index 0000000..d59fbc3
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/data/Artifact.java
@@ -0,0 +1,96 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.data;
+
+public class Artifact {
+
+  String name;
+  String type;
+  String groupType;
+  String description;
+  String label;
+  String version;
+  String checksum;
+  byte[] payload;
+
+  /**
+   * Instantiates a new Artifact.
+   *
+   * @param type      the type
+   * @param groupType the group type
+   * @param checksum  the checksum
+   * @param payload   the payload
+   */
+  public Artifact(String type, String groupType, String checksum, byte[] payload) {
+    this.type = type;
+    this.groupType = groupType;
+    this.checksum = checksum;
+    this.payload = payload;
+  }
+
+  public byte[] getPayload() {
+    return payload;
+  }
+
+  public String getChecksum() {
+    return checksum;
+  }
+
+  public String getType() {
+    return type;
+  }
+
+  public String getGroupType() {
+    return groupType;
+  }
+
+  public String getName() {
+    return name;
+  }
+
+  public void setName(String name) {
+    this.name = name;
+  }
+
+  public String getLabel() {
+    return label;
+  }
+
+  public void setLabel(String label) {
+    this.label = label;
+  }
+
+  public String getDescription() {
+    return description;
+  }
+
+  public void setDescription(String description) {
+    this.description = description;
+  }
+
+  public String getVersion() {
+    return version;
+  }
+
+  public void setVersion(String version) {
+    this.version = version;
+  }
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/data/ArtifactType.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/data/ArtifactType.java
new file mode 100644
index 0000000..e844f94
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/data/ArtifactType.java
@@ -0,0 +1,27 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.data;
+
+public enum ArtifactType {
+  OTHER,
+  AAI,
+  MODEL_INVENTORY_PROFILE
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/data/GenerationData.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/data/GenerationData.java
new file mode 100644
index 0000000..83a8452
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/data/GenerationData.java
@@ -0,0 +1,70 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.data;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class GenerationData {
+
+  List<Artifact> resultData = new ArrayList<>();
+  Map<String, List<String>> errorData = new HashMap<>();
+
+  public void add(List<Artifact> resultData, Map<String, List<String>> errorData) {
+    this.resultData.addAll(resultData);
+    this.errorData.putAll(errorData);
+  }
+
+
+  public void add(Artifact generatedArtifact) {
+    resultData.add(generatedArtifact);
+  }
+
+  /**
+   * Add.
+   *
+   * @param generatorId the generator id
+   * @param errorCode   the error code
+   */
+  public void add(String generatorId, String errorCode) {
+    List<String> errorIds;
+    if ((errorIds = errorData.get(generatorId)) == null) {
+      errorIds = new ArrayList<>();
+      errorData.put(generatorId, errorIds);
+    }
+    errorIds.add(errorCode);
+  }
+
+  public void add(GenerationData generationData) {
+    this.resultData.addAll(generationData.resultData);
+    this.errorData.putAll(generationData.errorData);
+  }
+
+  public List<Artifact> getResultData() {
+    return resultData;
+  }
+
+  public Map<String, List<String>> getErrorData() {
+    return errorData;
+  }
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/data/GeneratorConfiguration.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/data/GeneratorConfiguration.java
new file mode 100644
index 0000000..af26b2b
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/data/GeneratorConfiguration.java
@@ -0,0 +1,36 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.data;
+
+import java.util.List;
+
+public class GeneratorConfiguration {
+
+  private List<ArtifactType> artifactTypes = null;
+
+  public List<ArtifactType> getArtifactTypes() {
+    return artifactTypes;
+  }
+
+  public void setArtifactTypes(List<ArtifactType> artifactTypes) {
+    this.artifactTypes = artifactTypes;
+  }
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/data/GeneratorConstants.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/data/GeneratorConstants.java
new file mode 100644
index 0000000..8f79aa1
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/data/GeneratorConstants.java
@@ -0,0 +1,129 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.data;
+
+public class GeneratorConstants {
+
+  public static final String GENERATOR_AAI_GENERATED_ARTIFACT_EXTENSION = "xml";
+
+  //Error codes
+  public static final String GENERATOR_INVOCATION_ERROR_CODE =
+      "ARTIFACT_GENERATOR_INVOCATION_ERROR";
+
+
+  //Error Constants
+  public static final String GENERATOR_ERROR_INVALID_CLIENT_CONFIGURATION =
+      "Invalid Client Configuration";
+  public static final String GENERATOR_ERROR_ARTIFACT_GENERATION_FAILED =
+      "Unable to generate artifacts for the provided input";
+  public static final String GENERATOR_ERROR_SERVICE_INSTANTIATION_FAILED =
+      "Artifact Generation Service Instantiation failed";
+
+  //AAI Generator Error Messages
+  public static final String GENERATOR_AAI_ERROR_CHECKSUM_MISMATCH =
+      "Checksum Mismatch for file : %s";
+  public static final String GENERATOR_AAI_ERROR_INVALID_TOSCA =
+      "Invalid format for Tosca YML  : %s";
+  public static final String GENERATOR_AAI_ERROR_MANDATORY_METADATA_DEFINITION =
+      "Invalid Service/Resource definition mandatory attribute <%s> missing in Artifact: <%s>";
+  public static final String GENERATOR_AAI_ERROR_INVALID_ID =
+      "Invalid value for mandatory attribute <%s> in Artifact: <%s>";
+  public static final String GENERATOR_AAI_ERROR_UNSUPPORTED_WIDGET_OPERATION =
+      "Operation Not Supported for Widgets";
+  public static final String GENERATOR_AAI_ERROR_MISSING_SERVICE_TOSCA =
+      "Service tosca missing from list of input artifacts";
+  public static final String GENERATOR_AAI_ERROR_NULL_RESOURCE_VERSION_IN_SERVICE_TOSCA =
+      "Invalid Service definition mandatory attribute version missing for resource with UUID: <%s>";
+
+  public static final String GENERATOR_AAI_ERROR_INVALID_RESOURCE_VERSION_IN_SERVICE_TOSCA =
+      "Cannot generate artifacts. Invalid Resource version in Service tosca for resource with "
+          + "UUID: "
+          + "<%s>";
+  public static final String GENERATOR_AAI_ERROR_MISSING_RESOURCE_TOSCA =
+      "Cannot generate artifacts. Resource Tosca missing for resource with UUID: <%s>";
+
+  public static final String GENERATOR_AAI_ERROR_MISSING_SERVICE_VERSION =
+      "Cannot generate artifacts. Service version is not specified";
+
+  public static final String GENERATOR_AAI_INVALID_SERVICE_VERSION =
+      "Cannot generate artifacts. Service version is incorrect";
+
+  //Logging constants
+  public static final String REQUEST_ID = "uuid";
+  public static final String SERVICE_INSTANCE_ID = "serviceInstanceID";
+  public static final String PARTNER_NAME = "userId";
+  public static final String SERVICE_NAME = "ServiceName";
+  public static final String INSTANCE_UUID = "InstanceUUID";
+  public static final String REMOTE_HOST = "RemoteHost";
+  public static final String CLIENT_IP = "ClientIP";
+  public static final String CATEGORY_LOG_LEVEL = "level";
+  public static final String STATUS_CODE = "StatusCode";
+  public static final String RESPONSE_CODE = "ResponseCode";
+  public static final String RESPONSE_DESCRIPTION = "ResponseDescription";
+  public static final String ELAPSED_TIME = "ElapsedTime";
+  public static final String BEGIN_TIMESTAMP = "BeginTimestamp";
+  public static final String TARGET_SERVICE_NAME = "TargetServiceName";
+  public static final String TARGET_ENTITY = "TargetEntity";
+  public static final String END_TIMESTAMP = "EndTimestamp";
+  public static final String ERROR_CATEGORY = "ErrorCategory";
+  public static final String ERROR_CODE = "ErrorCode";
+  public static final String ERROR_DESCRIPTION = "ErrorDescription";
+  public static final String MDC_SDC_INSTANCE_UUID = "SDC_INSTANCE_UUID";
+  public static final String SERVICE_METRIC_BEGIN_TIMESTAMP = "SERVICE-METRIC-BEGIN-TIMESTAMP";
+  public static final String LOCAL_ADDR = "localAddr"; //map ServerIPAddress from loggingfilter
+  public static final String BE_FQDN = "beFqdn"; //map ServerFQDN from logging filter
+  public static final String ARTIFACT_MODEL_INFO = "ARTIFACT_MODEL_INFO";
+
+  public static final String GENERATOR_ERROR_CODE = "300F";
+  public static final String GENERATOR_PARTNER_NAME = "SDC Catalog";
+  public static final String GENERATOR_METRICS_TARGET_ENTITY = "SDC Catalog";
+  public static final String GENERATOR_METRICS_FAILURE_RESPONSE_CODE = "300E";
+  public static final String GENERATOR_METRICS_FAILURE_RESPONSE_DESC = "Artifact generation "
+      + "failed for artifact type %s";
+  public static final String GENERATOR_METRICS_SUCCESS_RESPONSE_CODE = "010";
+  public static final String GENERATOR_METRICS_SUCCESS_RESPONSE_DESC = "Artifacts for type %s "
+      + "were generated successfully";
+  public static final String GENERATOR_AUDIT_NO_ARTIFACT_TYPE_RESPONSE_DESC = "No Artifact Type "
+      + "found" ;
+
+  //AAI Generator Error Messages for Logging
+  public static final String GENERATOR_AAI_ERROR_INVALID_TOSCA_MSG =
+      "Invalid format for Tosca YML";
+  public static final String GENERATOR_AAI_ERROR_MANDATORY_METADATA_DEFINITION_MSG =
+      "Invalid Service/Resource definition mandatory attribute";
+  public static final String GENERATOR_AAI_ERROR_MISSING_SERVICE_TOSCA_MSG =
+      "Service tosca missing from list of input artifacts";
+  public static final String GENERATOR_ERROR_INVALID_CLIENT_CONFIGURATION_MSG =
+      "Invalid Client Configuration";
+  public static final String GENERATOR_ERROR_ARTIFACT_GENERATION_FAILED_MSG =
+      "Unable to generate artifacts for the provided input";
+  public static final String GENERATOR_AAI_CONFIGFILE_NOT_FOUND =
+      "Cannot generate artifacts. Artifact Generator Configuration file not found at %s";
+  public static final String GENERATOR_AAI_CONFIGLOCATION_NOT_FOUND =
+      "Cannot generate artifacts. artifactgenerator.config system property not configured";
+  public static final String GENERATOR_AAI_CONFIGLPROP_NOT_FOUND =
+      "Cannot generate artifacts. Widget configuration not found for %s";
+  public static final String GENERATOR_AAI_PROVIDING_SERVICE_MISSING =
+      "Cannot generate artifacts. Providing Service is missing for allotted resource %s";
+  public static final String GENERATOR_AAI_PROVIDING_SERVICE_METADATA_MISSING =
+      "Cannot generate artifacts. Providing Service Metadata is missing for allotted resource %s";
+  public static final int ID_LENGTH = 36;
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/data/GeneratorUtil.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/data/GeneratorUtil.java
new file mode 100644
index 0000000..918fa1e
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/data/GeneratorUtil.java
@@ -0,0 +1,104 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.data;
+
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
+import org.apache.commons.codec.digest.DigestUtils;
+
+import java.io.IOException;
+import java.util.Base64;
+
+/**
+ * Utility method class for artifact generation.
+ */
+public class GeneratorUtil {
+  /**
+   * Translate tosca yaml into the provided model class.
+   *
+   * @param tosca    Tosca file content
+   * @param classOfT Model class for the translated object
+   * @param <T>      Template parameter for the return object
+   * @return Object model for the provided tosca yaml file
+   */
+  public static <T> T translateTosca(String tosca, Class<T> classOfT) throws IOException {
+    T tos;
+    //changing file
+    ObjectMapper mapper = new ObjectMapper(new YAMLFactory()); // jackson data-bind
+    mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+    tos = mapper.readValue(tosca, classOfT);
+    return tos;
+  }
+
+  /**
+   * Decodes Base64 encode byte array input.
+   *
+   * @param input Base64 encoded byte array
+   * @return Decoded byte array
+   */
+  public static byte[] decoder(byte[] input) {
+    if (input != null) {
+      byte[] output = Base64.getDecoder().decode(input);
+      return output;
+    }
+    return null;
+  }
+
+  /**
+   * Encode a byte array input using Base64 encoding.
+   *
+   * @param input Input byte array to be encoded
+   * @return Base64 encoded byte array
+   */
+  public static byte[] encode(byte[] input) {
+    if (input != null) {
+      byte[] output = Base64.getEncoder().encode(input);
+      return output;
+    }
+    return null;
+  }
+
+  /**
+   * Calculate the checksum for a given input.
+   *
+   * @param input Byte array for which the checksum has to be calculated
+   * @return Calculated checksum of the input byte array
+   */
+  public static String checkSum(byte[] input) {
+    String checksum = null;
+    if (input != null) {
+      checksum = (DigestUtils.md5Hex(input)).toUpperCase();
+    }
+    return checksum;
+  }
+
+  /**
+   * Check if string is empty or null.
+   *
+   * @param input Input String
+   * @return true if string is empty/null and false otherwise
+   */
+  public static boolean isEmpty(String input) {
+    return input == null || input.length() == 0;
+  }
+
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/data/GroupType.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/data/GroupType.java
new file mode 100644
index 0000000..69a8484
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/data/GroupType.java
@@ -0,0 +1,26 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.data;
+
+public enum GroupType {
+  DEPLOYMENT,
+  OTHER
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/data/WidgetConfigurationUtil.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/data/WidgetConfigurationUtil.java
new file mode 100644
index 0000000..ab2da6c
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/data/WidgetConfigurationUtil.java
@@ -0,0 +1,36 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.data;
+
+import java.util.Properties;
+
+public class WidgetConfigurationUtil {
+
+  private static Properties config ;
+
+  public static Properties getConfig() {
+    return config;
+  }
+
+  public static void setConfig(Properties config) {
+    WidgetConfigurationUtil.config = config;
+  }
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/error/IllegalAccessException.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/error/IllegalAccessException.java
new file mode 100644
index 0000000..823af87
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/error/IllegalAccessException.java
@@ -0,0 +1,29 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.error;
+
+public class IllegalAccessException extends RuntimeException {
+
+  public IllegalAccessException(String message) {
+    super(message);
+  }
+
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/intf/ArtifactGenerator.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/intf/ArtifactGenerator.java
new file mode 100644
index 0000000..4578a15
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/intf/ArtifactGenerator.java
@@ -0,0 +1,35 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.intf;
+
+import org.onap.sdc.generator.data.GenerationData;
+import org.onap.sdc.generator.data.Artifact;
+
+import java.util.List;
+import java.util.Map;
+
+
+public interface ArtifactGenerator {
+
+  public GenerationData generateArtifact(List<Artifact> input,
+                                         Map<String, String> additionalParams);
+
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/intf/Generator.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/intf/Generator.java
new file mode 100644
index 0000000..069316a
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/intf/Generator.java
@@ -0,0 +1,40 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.intf;
+
+import org.onap.sdc.generator.data.ArtifactType;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Target(ElementType.TYPE)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Generator {
+
+  /**
+   * Artifact type artifact type.
+   *
+   * @return the artifact type
+   */
+  public ArtifactType artifactType();
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/logging/ArtifactGeneratorLogResponseCode.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/logging/ArtifactGeneratorLogResponseCode.java
new file mode 100644
index 0000000..17507f1
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/logging/ArtifactGeneratorLogResponseCode.java
@@ -0,0 +1,68 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.logging;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public enum ArtifactGeneratorLogResponseCode {
+  INTERNAL_SERVER_ERROR(201),
+  MISSING_CONFIG_PROPERTIES_FILE(202),
+  MISSING_SYSTME_PROPERY_CONFIGURATION(203),
+  MANDATORY_ATTRIBUTE_MISSING(313),
+  SERVICE_TOSCA_MISSING(314),
+  INVALID_TOSCA_YAML(315),
+  INVALID_CLIENT_CONFIGURATION(316),
+  UNABLE_TO_GENERATE_ARTIFACT(317),
+  MISSING_WIDGET_CONFIGURATION(318),
+  INVALID_ID_VALUE(319),
+  MISSING_SERVICE_VERSION(320),
+  INVALID_SERVICE_VERSION(321),
+  MISSING_RESOURCE_VERSION(322),
+  INVALID_RESOURCE_VERSION(323),
+  MISSING_PRO_SERVICE(324),
+  MISSING_PRO_SERVICE_METADATA(325),
+  RESOURCE_TOSCA_MISSING(326);
+
+
+  private static Map<Integer, ArtifactGeneratorLogResponseCode> mapValueToEnum = new HashMap<>();
+
+  static {
+    for (ArtifactGeneratorLogResponseCode responseCode :
+        ArtifactGeneratorLogResponseCode.values()) {
+      mapValueToEnum.put(responseCode.value, responseCode);
+    }
+  }
+
+  private int value;
+
+  ArtifactGeneratorLogResponseCode(int value) {
+    this.value = value;
+  }
+
+  public static ArtifactGeneratorLogResponseCode parseValue(int value) {
+    return mapValueToEnum.get(value);
+  }
+
+  public int getValue() {
+    return value;
+  }
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/logging/CategoryLogLevel.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/logging/CategoryLogLevel.java
new file mode 100644
index 0000000..930b5c7
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/logging/CategoryLogLevel.java
@@ -0,0 +1,29 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.logging;
+
+public enum CategoryLogLevel {
+  INFO,
+  WARN,
+  DEBUG,
+  ERROR,
+  FATAL
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/logging/StatusCode.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/logging/StatusCode.java
new file mode 100644
index 0000000..0eb3b6d
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/logging/StatusCode.java
@@ -0,0 +1,26 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.logging;
+
+public enum StatusCode {
+  COMPLETE,
+  ERROR
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/logging/annotations/Audit.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/logging/annotations/Audit.java
new file mode 100644
index 0000000..c56bd4a
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/logging/annotations/Audit.java
@@ -0,0 +1,34 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.logging.annotations;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Indicates a method for auditing during artifact generation.
+ */
+@Target(ElementType.METHOD)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Audit {
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/logging/annotations/Metrics.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/logging/annotations/Metrics.java
new file mode 100644
index 0000000..468ab64
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/logging/annotations/Metrics.java
@@ -0,0 +1,35 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.logging.annotations;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Indicates a method for metrics recording during artifact generation.
+ *
+ */
+@Target(ElementType.METHOD)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Metrics {
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/service/ArtifactGenerationService.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/service/ArtifactGenerationService.java
new file mode 100644
index 0000000..2af9664
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/java/org/onap/sdc/generator/service/ArtifactGenerationService.java
@@ -0,0 +1,69 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.service;
+
+import org.onap.sdc.generator.data.GenerationData;
+import org.onap.sdc.generator.data.GeneratorConstants;
+import org.openecomp.sdc.logging.api.Logger;
+import org.openecomp.sdc.logging.api.LoggerFactory;
+import org.onap.sdc.generator.data.Artifact;
+import org.onap.sdc.generator.logging.CategoryLogLevel;
+import org.slf4j.MDC;
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * Artifact Generation Service interface.
+ */
+public interface ArtifactGenerationService {
+
+
+  /**
+   * Method to get artifact generation service implementation.
+   *
+   * @return Artifact generation implementation instance
+   */
+  public static ArtifactGenerationService lookup() {
+
+    Logger log = LoggerFactory.getLogger(ArtifactGenerationService.class.getName());
+    log.debug("Instantiating Artifact Generation Service");
+    try {
+      return ArtifactGenerationService.class.cast(
+          Class.forName("org.openecomp.sdc.generator.impl.ArtifactGenerationServiceImpl")
+              .newInstance());
+    } catch (Exception exception) {
+      MDC.put(GeneratorConstants.PARTNER_NAME, GeneratorConstants.GENERATOR_PARTNER_NAME);
+      MDC.put(GeneratorConstants.ERROR_CATEGORY, CategoryLogLevel.ERROR.name());
+      MDC.put(GeneratorConstants.ERROR_CODE, GeneratorConstants.GENERATOR_ERROR_CODE);
+      MDC.put(
+          GeneratorConstants.ERROR_DESCRIPTION, GeneratorConstants.GENERATOR_ERROR_SERVICE_INSTANTIATION_FAILED);
+      log.error(GeneratorConstants.GENERATOR_ERROR_SERVICE_INSTANTIATION_FAILED, exception);
+    }
+    log.debug(GeneratorConstants.GENERATOR_ERROR_SERVICE_INSTANTIATION_FAILED);
+    return null;
+  }
+
+  public GenerationData generateArtifact(List<Artifact> input, String overridingConfiguration,
+                                         Map<String, String> additionalParams);
+
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/resources/aai_schema_v10.xsd b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/resources/aai_schema_v10.xsd
new file mode 100644
index 0000000..7bc3466
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/resources/aai_schema_v10.xsd
@@ -0,0 +1,6311 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<xs:schema elementFormDefault="qualified" version="1.0"
+           targetNamespace="http://org.openecomp.aai.inventory/v10"
+           xmlns:tns="http://org.openecomp.aai.inventory/v10"
+           xmlns:xs="http://www.w3.org/2001/XMLSchema"
+xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
+    jaxb:version="2.1" 
+    xmlns:annox="http://annox.dev.java.net" 
+    jaxb:extensionBindingPrefixes="annox">
+
+  <xs:element name="inventory-item-data">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="property-name" type="xs:string" minOccurs="0"/>
+        <xs:element name="property-value" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="inventory-item">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="inventory-item-type" type="xs:string" minOccurs="0"/>
+        <xs:element name="inventory-item-link" type="xs:string" minOccurs="0"/>
+        <xs:element ref="tns:inventory-item-data" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element ref="tns:tagged-inventory-item-list" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="tagged-inventory-item-list">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:inventory-item" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="edge-tag-query-result">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:tagged-inventory-item-list" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="start-node-filter">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="property-name" type="xs:string" minOccurs="0"/>
+        <xs:element name="property-value" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="include-node-filter">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="include-node-type" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="secondary-filter">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="property-name" type="xs:string" minOccurs="0"/>
+        <xs:element name="filter-type" type="xs:string" minOccurs="0"/>
+        <xs:element name="property-value" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="edge-tag-query-request">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="edge-tag" type="xs:string" minOccurs="0"/>
+        <xs:element name="result-detail" type="xs:string" minOccurs="0"/>
+        <xs:element name="start-node-type" type="xs:string" minOccurs="0"/>
+        <xs:element ref="tns:start-node-filter" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element ref="tns:include-node-filter" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element ref="tns:secondary-filter" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="result-data">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="resource-type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The specific type of node in the A&amp;AI graph")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-link" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The URL to the specific resource")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="search-results">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:result-data" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="relationship-data">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="relationship-key" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="A keyword provided by A&amp;AI to indicate an attribute.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="relationship-value" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Value of the attribute.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="related-to-property">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="property-key" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Key part of a key/value pair")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="property-value" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Value part of a key/value pair")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="relationship">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="related-to" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="A keyword provided by A&amp;AI to indicate type of node.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="related-link" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to the object in A&amp;AI.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-data" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element ref="tns:related-to-property" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="relationship-list">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:relationship" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="oam-network">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="network-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="UUID of the network. Unique across a cloud-region")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="network-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of the network.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="cvlan-tag" type="xs:unsignedInt">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="cvlan-id")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipv4-oam-gateway-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipv4-oam-gateway-address-prefix-length" type="xs:int" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="oam-networks">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of OAM networks, to be deprecated shortly.  Do not use for new purposes. ")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:oam-network" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="dvs-switch">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Digital virtual switch metadata, used by SDN-C to configure VCEs.  A&amp;AI needs to receive this data from the PO deployment team and administer it using the provisioningTool.sh into A&amp;AI. ",indexedProps="vcenter-url,switch-name",dependentOn="cloud-region",container="dvs-switches")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="switch-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="DVS switch name")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vcenter-url" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL used to reach the vcenter")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="dvs-switches">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of digital virtual switch metadata used for vmWare VCEs and VPEs.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:dvs-switch" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="availability-zone">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Availability zone, a collection of compute hosts/pservers",indexedProps="availability-zone-name",dependentOn="cloud-region",container="availability-zones")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="availability-zone-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Name of the availability zone.  Unique across a cloud region")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="hypervisor-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Type of hypervisor.  Source of truth should define valid values.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="operational-state" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="State that indicates whether the availability zone should be used, etc.  Source of truth should define valid values.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="az-and-dvs-switches">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:dvs-switches" minOccurs="0"/>
+        <xs:element ref="tns:availability-zone" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="sdn-zone-response">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:oam-networks" minOccurs="0"/>
+        <xs:element ref="tns:az-and-dvs-switches" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="search">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:edge-tag-query-result" minOccurs="0"/>
+        <xs:element ref="tns:edge-tag-query-request" minOccurs="0"/>
+        <xs:element ref="tns:search-results" minOccurs="0"/>
+        <xs:element ref="tns:sdn-zone-response" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="update-node-key">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="key-name" type="xs:string" minOccurs="0"/>
+        <xs:element name="key-value" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="action-data">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="property-name" type="xs:string" minOccurs="0"/>
+        <xs:element name="property-value" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="action">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="action-type" type="xs:string" minOccurs="0"/>
+        <xs:element ref="tns:action-data" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="update">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Serves a PATCH like function.  Does not enforce concurrency control.  Clear each usage with AAI team.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="update-node-type" type="xs:string"/>
+        <xs:element ref="tns:update-node-key" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element name="update-node-uri" type="xs:string" minOccurs="0"/>
+        <xs:element ref="tns:action" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="key-data">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="key-name" type="xs:string" minOccurs="0"/>
+        <xs:element name="key-value" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="notify">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="event-id" type="xs:string"/>
+        <xs:element name="node-type" type="xs:string" minOccurs="0"/>
+        <xs:element name="event-trigger" type="xs:string" minOccurs="0"/>
+        <xs:element ref="tns:key-data" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element name="selflink" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="actions">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="APIs that are more action related than REST (e.g., notify, update).")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:update" minOccurs="0"/>
+        <xs:element ref="tns:notify" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="ctag-pool">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="target-pe" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="The Target provider edge router")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="availability-zone-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Name of the availability zone")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ctag-pool-purpose" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Describes what the intended purpose of this pool is.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ctag-values" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Comma separated list of ctags")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="ctag-pools">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:ctag-pool" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="complex">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="physical-location-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique identifier for physical location, e.g., CLLI")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="data-center-code" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Data center code which can be an alternate way to identify a complex")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="complex-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Gamma complex name for LCP instance.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="identity-url" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL of the keystone identity service")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="physical-location-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Type, e.g., central office, data center.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="street1" type="xs:string"/>
+        <xs:element name="street2" type="xs:string" minOccurs="0"/>
+        <xs:element name="city" type="xs:string"/>
+        <xs:element name="state" type="xs:string" minOccurs="0"/>
+        <xs:element name="postal-code" type="xs:string"/>
+        <xs:element name="country" type="xs:string"/>
+        <xs:element name="region" type="xs:string"/>
+        <xs:element name="latitude" type="xs:string" minOccurs="0"/>
+        <xs:element name="longitude" type="xs:string" minOccurs="0"/>
+        <xs:element name="elevation" type="xs:string" minOccurs="0"/>
+        <xs:element name="lata" type="xs:string" minOccurs="0"/>
+        <xs:element ref="tns:ctag-pools" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="complexes">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:complex" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="volume-group">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Persistent block-level storage.",indexedProps="volume-group-name,vnf-type,heat-stack-id,volume-group-id",searchable="volume-group-name",dependentOn="cloud-region",container="volume-groups")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="volume-group-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of volume-group.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="volume-group-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of the volume group.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this volume-group")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vnf-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource.  This field has been overloaded and clients should expect changes                  to occur in the future to this field as ASDC matures.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this volume-group")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="persona-model-customization-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="volume-groups">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of persistent block-level storage.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:volume-group" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="volume">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Ephemeral Block storage volume.",indexedProps="volume-id",dependentOn="vserver",container="volumes")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="volume-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of block storage volume relative to the vserver.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="volume-selflink" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="volumes">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of ephemeral Block storage volumes.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:volume" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="l3-interface-ipv4-address-list">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="l3-interface-ipv4-address" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="IP address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="l3-interface-ipv4-prefix-length" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Prefix length, 32 for single address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vlan-id-inner" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Inner VLAN tag")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vlan-id-outer" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Outer VLAN tag")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="is-floating" type="xs:boolean" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicator of fixed or floating address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="neutron-network-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="neutron-subnet-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="l3-interface-ipv6-address-list">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="l3-interface-ipv6-address" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="IP address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="l3-interface-ipv6-prefix-length" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Prefix length, 128 for single address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vlan-id-inner" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Inner VLAN tag")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vlan-id-outer" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Outer VLAN tag")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="is-floating" type="xs:boolean" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicator of fixed or floating address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="neutron-network-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="neutron-subnet-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vlan">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Definition of vlan",indexedProps="vlan-interface,vlan-id-inner,vpn-id",uniqueProps="vpn-id",dependentOn="l-interface",container="vlans")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="vlan-interface" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="String that identifies the interface")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vlan-id-inner" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Inner VLAN tag")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vlan-id-outer" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Outer VLAN tag")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="speed-value" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the numeric part of the speed")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="speed-units" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the units corresponding to the speed")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vlan-description" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used to describe (the service associated with) the vlan")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="backdoor-connection" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Whether customer is going to use this VLAN for backdoor connection to another customer premise device.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vpn-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This indicates the customers VPN ID associated with this vlan")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:l3-interface-ipv4-address-list" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element ref="tns:l3-interface-ipv6-address-list" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vlans">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:vlan" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="sriov-vf">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="pci-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="PCI ID used to identify the sriov-vf")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vf-vlan-filter" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This metadata provides option to specify list of VLAN filters applied on VF to pass the traffic to VM.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vf-mac-filter" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vf-vlan-strip" type="xs:boolean" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vf-vlan-anti-spoof-check" type="xs:boolean" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vf-mac-anti-spoof-check" type="xs:boolean" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vf-mirrors" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vf-broadcast-allow" type="xs:boolean" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vf-unknown-multicast-allow" type="xs:boolean" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vf-unknown-unicast-allow" type="xs:boolean" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vf-insert-stag" type="xs:boolean" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This option, if set to true, instructs to insert outer tag after traffic comes out of VM.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vf-link-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This option is used to set the link status.  Valid values as of 1607 are on, off, and auto.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="neutron-network-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron network id of the interface")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="sriov-vfs">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of SR-IOV Virtual Functions.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:sriov-vf" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="l-interface">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Logical interfaces, e.g., a vnic.",indexedProps="macaddr,interface-id,interface-name,network-name",dependentOn="generic-vnf,newvce,vpe,p-interface,vserver,lag-interface",container="l-interfaces")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="interface-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Name given to the interface")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="interface-role" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="E.g., CUSTOMER, UPLINK, etc.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="v6-wan-link-ip" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Questionably placed - v6 ip addr of this interface (is in vr-lan-interface from Mary B.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="selflink" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="interface-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ID of interface")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="macaddr" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="MAC address for the interface")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="network-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of the network")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="management-option" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Whether A&amp;AI should be managing this interface of not. Could have value like CUSTOMER")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="interface-description" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Human friendly text regarding this interface.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:vlans" minOccurs="0"/>
+        <xs:element ref="tns:sriov-vfs" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:l3-interface-ipv4-address-list" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element ref="tns:l3-interface-ipv6-address-list" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="l-interfaces">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of logical interfaces.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:l-interface" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vserver">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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-name,vserver-id,vserver-name2",dependentOn="tenant",container="vservers")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="vserver-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique identifier for this vserver relative to its tenant")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vserver-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of vserver")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vserver-name2" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Alternative name of vserver")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="prov-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vserver-selflink" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="in-maint" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="is-closed-loop-disabled" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether closed loop function is enabled on this node")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:volumes" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:l-interfaces" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vservers">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of virtual Servers, aka virtual machines or VMs.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:vserver" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="tenant">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Openstack tenant",nameProps="tenant-name",indexedProps="tenant-name,tenant-id",searchable="tenant-name,tenant-id",dependentOn="cloud-region",container="tenants")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="tenant-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id relative to the cloud-region.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="tenant-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Readable name of tenant")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:vservers" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="tenants">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of openstack tenants.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:tenant" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="flavor">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Openstack flavor.",nameProps="flavor-name",indexedProps="flavor-name,flavor-id",dependentOn="cloud-region",container="flavors")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="flavor-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Flavor id, expected to be unique across cloud-region.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="flavor-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Flavor name")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="flavor-vcpus" type="xs:int" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Number of CPUs")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="flavor-ram" type="xs:int" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Amount of memory")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="flavor-disk" type="xs:int" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Disk space")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="flavor-ephemeral" type="xs:int" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Amount of ephemeral disk space")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="flavor-swap" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="amount of swap space allocation")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="flavor-is-public" type="xs:boolean" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="whether flavor is available to all users or private to the tenant it was created in.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="flavor-selflink" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="flavor-disabled" type="xs:boolean" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Boolean as to whether this flavor is no longer enabled")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="flavors">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of openstack flavors.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:flavor" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="group-assignment">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="group-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Group id, expected to be unique across cloud-region.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="group-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Group type - the type of group this instance refers to")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="group-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Group name - name assigned to the group")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="group-description" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Group description - description of the group")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="group-assignments">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of openstack group assignments")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:group-assignment" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="snapshot">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="snapshot-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Snapshot id, this is the key UUID assoc associated in glance with the snapshots.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="snapshot-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Snapshot name")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="snapshot-architecture" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Operating system architecture")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="snapshot-os-distro" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="snapshot-os-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The operating system version as specified by the distributor.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="application" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The application that the image instantiates.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="application-vendor" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The vendor of the application.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="application-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The version of the application.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="snapshot-selflink" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="prev-snapshot-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This field contains the UUID of the previous snapshot (if any).")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="snapshots">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of openstack snapshots")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:snapshot" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="metadatum">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Key/value pairs",indexedProps="metaname",dependentOn="tenant,image,service-instance,connector,model",container="metadata")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="metaname" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true)</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="metaval" type="xs:string"/>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="metadata">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of metadatum (key/value pairs)")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:metadatum" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="image">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Openstack image.",nameProps="image-name",indexedProps="application,image-name,application-vendor,image-id,application-version",dependentOn="cloud-region",container="images")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="image-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Image id, expected to be unique across cloud region")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="image-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Image name")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="image-architecture" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Operating system architecture.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="image-os-distro" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="image-os-version" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The operating system version as specified by the distributor.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="application" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The application that the image instantiates.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="application-vendor" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The vendor of the application.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="application-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The version of the application.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="image-selflink" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:metadata" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="images">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collectio of Openstack images.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:image" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="availability-zones">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of availability zones")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:availability-zone" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="cloud-region">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="cloud-region designates an installation of a cloud cluster or region or instantiation. In AT&amp;Ts OPENECOMP 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 OPENECOMP for AT&amp;T's OPENECOMP.",indexedProps="cloud-owner,cloud-region-id,cloud-type,owner-defined-type",nameProps="owner-defined-type",container="cloud-regions",namespace="cloud-infrastructure")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="cloud-owner" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Identifies the vendor and cloud name, e.g., OPENECOMP. First part of composite key should be formatted as vendor-cloudname")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="cloud-region-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Identifier used by the vendor for the region. Second part of composite key")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="cloud-type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Type of the cloud (e.g., openstack)")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="owner-defined-type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Cloud-owner defined type indicator (e.g., DCP, LCP)")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="cloud-region-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Software version employed at the site")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="identity-url" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL of the keystone identity service")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="cloud-zone" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Zone where the cloud is homed")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="complex-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="complex name for cloud-region instance")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:volume-groups" minOccurs="0"/>
+        <xs:element ref="tns:tenants" minOccurs="0"/>
+        <xs:element ref="tns:flavors" minOccurs="0"/>
+        <xs:element ref="tns:group-assignments" minOccurs="0"/>
+        <xs:element ref="tns:snapshots" minOccurs="0"/>
+        <xs:element ref="tns:images" minOccurs="0"/>
+        <xs:element ref="tns:dvs-switches" minOccurs="0"/>
+        <xs:element ref="tns:oam-networks" minOccurs="0"/>
+        <xs:element ref="tns:availability-zones" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="cloud-regions">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(maximumDepth="0")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:cloud-region" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="network-profile">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Network profile populated by SDN-GP for SNMP",indexedProps="nm-profile-name",container="network-profiles",namespace="cloud-infrastructure")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="nm-profile-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique name of network profile.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="community-string" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Encrypted SNMP community string")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="network-profiles">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of network profiles")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:network-profile" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="p-interface">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="interface-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Name that identifies the physical interface")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="speed-value" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the numeric part of the speed")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="speed-units" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the units corresponding to the speed")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="port-description" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Nature of the services and connectivity on this port.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="equipment-identifier" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="CLEI or other specification for p-interface hardware.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="interface-role" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Role specification for p-interface hardware.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="interface-type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicates the physical properties of the interface.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="prov-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:l-interfaces" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="p-interfaces">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of physical interfaces.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:p-interface" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="lag-interface">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Link aggregate interface",indexedProps="interface-name,interface-id,interface-role",dependentOn="generic-vnf,pserver,vpe,vpls-pe,pnf",container="lag-interfaces")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="interface-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Name that identifies the link aggregate interface")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="speed-value" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the numeric part of the speed")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="speed-units" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the units corresponding to the speed")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="interface-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ID of interface")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="interface-role" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate
+                      target="field">@org.openecomp.aai.annotations.Metadata(description="Role
+                assigned to this Interface, should use values as defined in OPENECOMP Yang
+                models.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="prov-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:l-interfaces" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="lag-interfaces">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of link aggregate interfaces.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:lag-interface" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="pserver">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="hostname" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Value from executing hostname on the compute node.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ptnii-equip-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="PTNII name")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="number-of-cpus" type="xs:int" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Number of cpus")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="disk-in-gigabytes" type="xs:int" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Disk size, in GBs")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ram-in-megabytes" type="xs:int" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="RAM size, in MBs")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="equip-type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Equipment type.  Source of truth should define valid values.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="equip-vendor" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Equipment vendor.  Source of truth should define valid values.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="equip-model" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Equipment model.  Source of truth should define valid values.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="fqdn" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Fully-qualified domain name")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="pserver-selflink" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipv4-oam-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used to configure device, also used for troubleshooting and is IP used for traps generated by device.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="serial-number" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Serial number, may be queried")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipaddress-v4-loopback-0" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV4 Loopback 0 address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipaddress-v6-loopback-0" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV6 Loopback 0 address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipaddress-v4-aim" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV4 AIM address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipaddress-v6-aim" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV6 AIM address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipaddress-v6-oam" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV6 OAM address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="inv-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="CANOPI's inventory status.  Only set with values exactly as defined by CANOPI.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="pserver-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ID of Pserver")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="internet-topology" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="internet topology of Pserver")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="in-maint" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="pserver-name2" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="alternative pserver name")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="purpose" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="purpose of pserver")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:p-interfaces" minOccurs="0"/>
+        <xs:element ref="tns:lag-interfaces" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="pservers">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of compute hosts.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:pserver" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="virtual-data-center">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="vdc-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of the vdc")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vdc-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of the virtual data center")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="virtual-data-centers">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:virtual-data-center" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="cloud-infrastructure">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Namespace for cloud infrastructure.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:complexes" minOccurs="0"/>
+        <xs:element ref="tns:cloud-regions" minOccurs="0"/>
+        <xs:element ref="tns:network-profiles" minOccurs="0"/>
+        <xs:element ref="tns:pservers" minOccurs="0"/>
+        <xs:element ref="tns:virtual-data-centers" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="license-key-resource">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata
+            (nameProps="name",indexedProps="assignment-group-uuid,openecomp-uuid,name",uniqueProps="openecomp-uuid",container="license-key-resources",namespace="license-management")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="att-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true)</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="assignment-type" type="xs:string" minOccurs="0"/>
+        <xs:element name="assignment-status" type="xs:string" minOccurs="0"/>
+        <xs:element name="assignment-group-uuid" type="xs:string"/>
+        <xs:element name="assignment-date" type="xs:string" minOccurs="0"/>
+        <xs:element name="name" type="xs:string" minOccurs="0"/>
+        <xs:element name="model-uuid" type="xs:string" minOccurs="0"/>
+        <xs:element name="model-version" type="xs:string" minOccurs="0"/>
+        <xs:element name="license-key" type="xs:string" minOccurs="0"/>
+        <xs:element name="license-key-file-url" type="xs:string" minOccurs="0"/>
+        <xs:element name="supplier-release-list" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="license-key-resources">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:license-key-resource" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="license-management">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:license-key-resources" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="connector">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="resource-instance-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of resource instance.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="persona-model-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="persona-model-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="widget-model-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="widget-model-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:metadata" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="connectors">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:connector" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="tunnel-xconnect">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="bandwidth-up-wan1" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The WAN uplink bandwidth for WAN1")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="bandwidth-down-wan1" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The WAN downlink bandwidth for WAN1")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="bandwidth-up-wan2" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The WAN uplink bandwidth for WAN2")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="bandwidth-down-wan2" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The WAN downlink bandwidth for WAN2")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Concurrency value")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="tunnel-xconnects">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="This object is used to store the specific tunnel cross connect aspects of an allotted resource")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:tunnel-xconnect" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="allotted-resource">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="description" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The descriptive information assigned to this allotted resource instance")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="selflink" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Link back to more information in the controller")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="persona-model-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="persona-model-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Concurrency value")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:tunnel-xconnects" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="allotted-resources">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="This object is used to store slices of services being offered")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:allotted-resource" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="service-instance">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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",nameProps="service-instance-name",searchable="service-instance-id,service-instance-name",uniqueProps="service-instance-id",dependentOn="service-subscription",container="service-instances")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="service-instance-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this instance of a service")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="service-instance-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This field will store a name assigned to the service-instance.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="persona-model-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="persona-model-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="widget-model-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="widget-model-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="bandwidth-total" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicates the total bandwidth to be used for this service.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="bandwidth-up-wan1" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="indicates the upstream bandwidth this service will use on the WAN1 port of the physical device.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="bandwidth-down-wan1" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="indicates the downstream bandwidth this service will use on the WAN1 port of the physical device.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="bandwidth-up-wan2" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="indicates the upstream bandwidth this service will use on the WAN2 port of the physical device.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="bandwidth-down-wan2" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="indicates the downstream bandwidth this service will use on the WAN2 port of the physical device.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vhn-portal-url" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL customers will use to access the vHN Portal.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="operational-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Operational status of the service-instance.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="service-instance-location-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="An identifier that customers assign to the location where this service is being used.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:metadata" minOccurs="0"/>
+        <xs:element ref="tns:allotted-resources" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="service-instances">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of service instances")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:service-instance" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="service-subscription">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Object that group service instances.",indexedProps="service-type",dependentOn="customer",container="service-subscriptions")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="service-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Value defined by orchestration to identify this service across OPENECOMP.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="temp-ub-sub-account-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This property will be deleted from A&amp;AI in the near future. Only stop gap solution.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:service-instances" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="service-subscriptions">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of objects that group service instances.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:service-subscription" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="customer">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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="subscriber-name,global-customer-id",uniqueProps="global-customer-id,subscriber-name",alternateKeys1="subscriber-name",container="customers",namespace="business")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="global-customer-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Global customer id used across OPENECOMP to uniquely identify customer.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="subscriber-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Subscriber name, an alternate way to retrieve a customer.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="subscriber-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Subscriber type, a way to provide VID with only the INFRA customers.",defaultValue="CUST")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:service-subscriptions" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="customers">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of customer identifiers to provide linkage back to BSS information.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:customer" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="business">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Namespace for business related constructs")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:connectors" minOccurs="0"/>
+        <xs:element ref="tns:customers" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vnf-image">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Image object that pertain to a VNF that doesn't have associated vservers.  This is a kludge.",indexedProps="application,openecomp-uuid,application-vendor,application-version",uniqueProps="openecomp-uuid",container="vnf-images",namespace="service-design-and-creation")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="att-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of this asset")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="application" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The application that the image instantiates.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="application-vendor" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The vendor of the application.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="application-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The version of the application.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="selflink" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vnf-images">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of image objects that pertain to a VNF that doesn't have associated vservers.  This is a kludge.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:vnf-image" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="service">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Stand-in for service model definitions.  Likely to be deprecated in favor of models from ASDC.",indexedProps="service-description,service-id",container="services",namespace="service-design-and-creation")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="service-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="service-description" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Description of the service")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="service-selflink" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="service-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="service version")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="services">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of service model definitions.  Likely to be deprecated in favor of models from ASDC.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:service" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="service-capability">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="service-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vnf-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="String capturing type of vnf, that was intended to identify the ASDC resource.  This field has been overloaded and clients should expect changes                  to occur in the future to this field as ASDC matures.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="service-capabilities">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of service capabilities.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:service-capability" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="element-choice-set">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="element-choice-set-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="element-choice-set-name" type="xs:string"/>
+        <xs:element name="cardinality" type="xs:string" minOccurs="0"/>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0"/>
+        <xs:element ref="tns:model-elements" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="element-choice-sets">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:element-choice-set" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="constrained-element-set">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="constrained-element-set-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="constraint-type" type="xs:string"/>
+        <xs:element name="check-type" type="xs:string"/>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0"/>
+        <xs:element ref="tns:element-choice-sets" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="constrained-element-sets">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:constrained-element-set" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="model-constraint">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="model-constraint-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="constrained-element-set-uuid-to-replace" type="xs:string"/>
+        <xs:element ref="tns:constrained-element-sets" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="model-constraints">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:model-constraint" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="model-element">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="model-element-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="new-data-del-flag" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicates whether this element was created as part of instantiation from this model")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="cardinality" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="How many of this type of element are required/allowed")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="linkage-points" minOccurs="0">
+          <xs:complexType>
+            <xs:annotation>
+              <xs:appinfo>
+                <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+              </xs:appinfo>
+            </xs:annotation>
+            <xs:sequence>
+              <xs:element name="linkage-point" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+            </xs:sequence>
+          </xs:complexType>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:model-elements" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:model-constraints" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Describes new constraints on this model element that are not part of that model's definition")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="model-elements">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:model-element" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="model-ver">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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",namespace="service-design-and-creation")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="model-version-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of the model, which can change from version to version.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-version" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Version")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-description" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Description")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:model-elements" minOccurs="0"/>
+        <xs:element ref="tns:metadata" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="model-vers">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:model-ver" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="model">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="model-invariant-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:model-vers" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="models">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of subgraph definitions provided by ASDC to describe the inventory assets and their connections related to ASDC models")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:model" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="related-lookup">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="TBD",uniqueProps="related-lookup-uuid",indexedProps="related-lookup-uuid",allowDirectRead="true",allowDirectWrite="false",container="related-lookups")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="related-lookup-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="source-node-type" type="xs:string"/>
+        <xs:element name="source-node-property" type="xs:string"/>
+        <xs:element name="target-node-type" type="xs:string"/>
+        <xs:element name="target-node-property" type="xs:string"/>
+        <xs:element name="property-collect-list" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="related-lookups">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:related-lookup" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="property-constraint">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="TBD",uniqueProps="property-constraint-uuid",indexedProps="property-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",container="property-constraints")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="property-constraint-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="constraint-type" type="xs:string"/>
+        <xs:element name="property-name" type="xs:string"/>
+        <xs:element name="property-value" type="xs:string"/>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="property-constraints">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:property-constraint" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="named-query-element">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="TBD",uniqueProps="named-query-element-uuid",indexedProps="named-query-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="named-query-elements")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="named-query-element-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="property-collect-list" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0"/>
+        <xs:element name="property-limit-desc" type="xs:string" minOccurs="0"/>
+        <xs:element name="do-not-output" type="xs:string" minOccurs="0"/>
+        <xs:element ref="tns:named-query-elements" minOccurs="0"/>
+        <xs:element ref="tns:related-lookups" minOccurs="0"/>
+        <xs:element ref="tns:property-constraints" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="named-query-elements">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:named-query-element" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="named-query">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="named-query-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true)</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="named-query-name" type="xs:string"/>
+        <xs:element name="named-query-version" type="xs:string"/>
+        <xs:element name="required-input-params" minOccurs="0">
+          <xs:complexType>
+            <xs:annotation>
+              <xs:appinfo>
+                <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+              </xs:appinfo>
+            </xs:annotation>
+            <xs:sequence>
+              <xs:element name="required-input-param" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+            </xs:sequence>
+          </xs:complexType>
+        </xs:element>
+        <xs:element name="description" type="xs:string" minOccurs="0"/>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0"/>
+        <xs:element ref="tns:named-query-elements" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="named-queries">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:named-query" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="service-design-and-creation">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Namespace for objects managed by ASDC")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:vnf-images" minOccurs="0"/>
+        <xs:element ref="tns:services" minOccurs="0"/>
+        <xs:element ref="tns:service-capabilities" minOccurs="0"/>
+        <xs:element ref="tns:models" minOccurs="0"/>
+        <xs:element ref="tns:named-queries" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="logical-link">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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",nameProps="prov-status,circuit-id",container="logical-links",namespace="network")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="link-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="e.g., evc-name, or vnf-nameA_interface-nameA_vnf-nameZ_interface-nameZ")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="link-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Type of logical link, e.g., evc")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="speed-value" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the numeric part of the speed")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="speed-units" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the units corresponding to the speed")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ip-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="v4, v6, or ds for dual stack (should be openecomp-ip-version)")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="routing-protocol" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="For example, static or BGP")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="persona-model-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="persona-model-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="widget-model-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="widget-model-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="operational-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indication of operational status of the logical link.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="prov-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="link-role" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indication of the network use of the logical link.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="link-name2" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Alias or alternate name (CLCI or D1 name).")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="link-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="UUID of the logical-link, SDNC generates this.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="circuit-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Circuit id")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="purpose" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Reason for this entity, role it is playing")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="logical-links">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of logical connections")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:logical-link" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="class-of-service">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(indexedProps="cos",dependentOn="site-pair",container="classes-of-service")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="cos" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="unique identifier of probe")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="probe-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="identifier of probe")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="probe-type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="type of probe")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="classes-of-service">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="class-of-service of probe")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:class-of-service" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="site-pair">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(indexedProps="site-pair-id",uniqueProps="site-pair-id",dependentOn="routing-instance",container="site-pairs")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="site-pair-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="unique identifier of probe")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="source-ip" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Prefix address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="destination-ip" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Prefix address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ip-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ip version, v4, v6")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="destination-hostname" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Hostname of the destination equipment to which SLAs are measured against.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="destination-equip-type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The type of destinatination equipment. Could be Router, UCPE, etc.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:classes-of-service" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="site-pairs">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="probe within a set")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:site-pair" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="routing-instance">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(indexedProps="routing-instance-id",uniqueProps="routing-instance-id",dependentOn="site-pair-set",container="routing-instances")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="routing-instance-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of routing instance")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="rpm-owner" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="rpm owner")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:site-pairs" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="routing-instances">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="set of probes related to generic-vnf routing instance")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:routing-instance" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="site-pair-set">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="site-pair-set-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of site pair set.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:routing-instances" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="site-pair-sets">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of sets of instances for probes related to generic-vnf")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:site-pair-set" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vpn-binding">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="VPN binding",nameProps="vpn-name,vpn-type",indexedProps="vpn-name,vpn-id,global-route-target,vpn-type",searchable="vpn-name",uniqueProps="vpn-id",container="vpn-bindings",namespace="network")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="vpn-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="VPN ID, globally unique within A&amp;AI")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vpn-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="VPN Name")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="global-route-target" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Number used to identify a VPN, globally unique in the network")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vpn-platform" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the platform associated with the VPN example AVPN, Mobility")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vpn-type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Type of the vpn, should be taken from enumerated/valid values")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="route-distinguisher" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used to distinguish the distinct VPN routes of separate customers who connect to the provider in an MPLS network.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="route-target-role" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Role assigned to this route target")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="l3-networks relate to vpn-bindings")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vpn-bindings">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:vpn-binding" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vpls-pe">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="VPLS Provider Edge routers.",indexedProps="prov-status,equipment-name",container="vpls-pes",namespace="network")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="equipment-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true)</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="prov-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipv4-oam-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Address tail-f uses to configure vpe, also used for troubleshooting and is IP used for traps generated by VPE (v4-loopback0-ip-address).")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="equipment-role" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Client should send valid enumerated value, e.g., VPLS-PE.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vlan-id-outer" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Temporary location for stag to get to VCE")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:p-interfaces" minOccurs="0"/>
+        <xs:element ref="tns:lag-interfaces" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vpls-pes">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of VPLS Provider Edge routers")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:vpls-pe" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="multicast-configuration">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(indexedProps="multicast-configuration-id",uniqueProps="multicast-configuration-id",container="multicast-configurations",namespace="network")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="multicast-configuration-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of multicast configuration.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="multicast-protocol" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="protocol of multicast configuration")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="rp-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="rp type of multicast configuration")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="multicast-configurations">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="multicast configuration of generic-vnf ip-address")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:multicast-configuration" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="cvlan-tag-entry">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(dependentOn="port-group",indexedProps="cvlan-tag",container="cvlan-tags")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="cvlan-tag" type="xs:unsignedInt">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="See mis-na-virtualization-platform.yang")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="cvlan-tags">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:cvlan-tag-entry" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="port-group">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="interface-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of the interface")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="neutron-network-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron network id of this Interface")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="neutron-network-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron network name of this Interface")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="interface-role" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in OPENECOMP Yang models.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="port-group-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Unique ID for port group in vmware")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="port-group-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Likely to duplicate value of neutron network name")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="switch-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="DVS or standard switch name (should be non-null for port groups associated with DVS)")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="orchestration-status" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="mso-catalog-key" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:cvlan-tags" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="port-groups">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:port-group" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="license">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Metadata for license group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce,vpe",container="licenses")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="group-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID for the license group the resource belongs to, should be uuid.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of a license resource. ")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Concurrency value")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="licenses">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Licenses to be allocated across resources, keyed by group-uuid and resource-uuid, related to license management")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:license" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="entitlement">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Metadata for entitlement group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce,vpe",container="entitlements")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="group-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID for the entitlement group the resource comes from, should be uuid.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of an entitlement resource. ")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Concurrency value")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="entitlements">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Entitlements, keyed by group-uuid and resource-uuid, related to license management")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:entitlement" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vce">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="vnf-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of VNF.  This is unique across the graph.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vnf-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of VNF.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vnf-name2" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Alternate name of VNF.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vnf-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource.  This field has been overloaded and clients should expect changes                  to occur in the future to this field as ASDC matures.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="service-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Unique identifier of service from ASDC.  Expect this to change as ASDC matures.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="regional-resource-zone" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="prov-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="operational-state" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="license-key" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="License key")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="equipment-role" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Network role being played by this VNF")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="mso-catalog-key" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vpe-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Unique ID of VPE connected to this VCE.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="v6-vce-wan-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Valid v6 IP address for the WAN Link on this router.  Implied length of /64.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipv4-oam-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Address tail-f uses to configure vce, also used for troubleshooting and is IP used for traps generated by VCE.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipv4-loopback0-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Loopback0 address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="entitlement-resource-uuid" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Entitlement resource uuid")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:port-groups" minOccurs="0"/>
+        <xs:element ref="tns:licenses" minOccurs="0"/>
+        <xs:element ref="tns:entitlements" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vces">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of Virtual Customer Edge Routers, used specifically for Gamma.  This object is deprecated.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:vce" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vpe">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Relationship-list must include related to info for complex.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,vnf-id,regional-resource-zone,prov-status,service-id",searchable="vnf-id,vnf-name,vnf-name2",uniqueProps="vnf-id",container="vpes",namespace="network",extendsFrom="vnf")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="vnf-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of VNF.  This is unique across the graph.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vnf-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of VNF.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vnf-name2" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Alternate name of VNF.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vnf-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource.  This field has been overloaded and clients should expect changes                  to occur in the future to this field as ASDC matures.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="service-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Unique identifier of service from ASDC")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="regional-resource-zone" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="prov-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="operational-state" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="license-key" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="License key")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="equipment-role" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Client should send valid enumerated value")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="mso-catalog-key" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipv4-oam-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Address tail-f uses to configure vpe, also used for troubleshooting and is IP used for traps generated by VPE (v4-loopback0-ip-address).")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipv4-oam-gateway-address-prefix-length" type="xs:int" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Prefix length for oam-address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipv4-oam-gateway-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Gateway address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="v4-loopback0-ip-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Loopback0 address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vlan-id-outer" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Temporary location for stag to get to VCE")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="as-number" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="as-number of the VPE")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="summary-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="details regarding the vpe operation")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="encrypted-access-flag" type="xs:boolean" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="indicates whether vpe access uses SSH")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:l-interfaces" minOccurs="0"/>
+        <xs:element ref="tns:lag-interfaces" minOccurs="0"/>
+        <xs:element ref="tns:licenses" minOccurs="0"/>
+        <xs:element ref="tns:entitlements" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vpes">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Virtual provider edge router. In 1504, A&amp;AI will populate this object through an M&amp;P and tool provided to operations.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:vpe" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vnfc">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="vnfc-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of vnfc.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vnfc-function-code" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="function code")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vnfc-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="type")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="prov-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="prov status of this vnfc")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by APP-C")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipaddress-v4-oam-vip" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Oam V4 vip address of this vnfc")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="in-maint" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="is-closed-loop-disabled" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="group-notation" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Group notation of VNFC")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vnfcs">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="virtual network components associated with a vserver from application controller.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:vnfc" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="subnet">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(indexedProps="subnet-id,subnet-name",nameProps="subnet-name",uniqueProps="subnet-id",dependentOn="l3-network",container="subnets")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="subnet-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Subnet ID, should be UUID.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="subnet-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name associated with the subnet.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="neutron-subnet-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron id of this subnet")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="gateway-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="gateway ip address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="network-start-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="network start address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="cidr-mask" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="cidr mask")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ip-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ip version")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="dhcp-enabled" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="dhcp enabled")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="dhcp-start" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the start address reserved for use by dhcp")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="dhcp-end" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the last address reserved for use by dhcp")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="subnets">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:subnet" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="ctag-assignment">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(indexedProps="vlan-id-inner",dependentOn="l3-network",container="ctag-assignments")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="vlan-id-inner" type="xs:unsignedInt">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="id.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="ctag-assignments">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:ctag-assignment" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="segmentation-assignment">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Openstack segmentation assignment.",indexedProps="segmentation-id",dependentOn="l3-network",container="segmentation-assignments")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="segmentation-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Concurrency value")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="segmentation-assignments">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of openstack segmentation assignments")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:segmentation-assignment" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="l3-network">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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-name",uniqueProps="network-id",container="l3-networks",namespace="network")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="network-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Network ID, should be uuid. Unique across A&amp;AI.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="network-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of the network, governed by some naming convention..")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="network-type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Type of the network - who defines these values?")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="network-role" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Role the network plans - who defines these values?")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="network-technology" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Network technology - who defines these values?")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="neutron-network-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron network id of this Interface")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="is-bound-to-vpn" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="Set to true if bound to VPN")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="service-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Unique identifier of service from ASDC")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="network-role-instance" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="network role instance")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="mso-catalog-key" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="contrail-network-fqdn" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Contrail FQDN for the network")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="persona-model-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="persona-model-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="persona-model-customization-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="widget-model-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="widget-model-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="physical-network-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name associated with the physical network.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="is-provider-network" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a provider network.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="is-shared-network" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a shared network.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="is-external-network" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is an external network.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:subnets" minOccurs="0"/>
+        <xs:element ref="tns:ctag-assignments" minOccurs="0"/>
+        <xs:element ref="tns:segmentation-assignments" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Relates to tenant (or is it a child of tenant), complex, service, vpn-binding")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="l3-networks">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:l3-network" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="network-policy">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(nameProps="network-policy-fqdn",indexedProps="network-policy-id,network-policy-fqdn",searchable="network-policy-fqdn",uniqueProps="network-policy-id",container="network-policies",namespace="network")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="network-policy-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="UUID representing unique key to this instance")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="network-policy-fqdn" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Contrail FQDN for the policy")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ID for the openStack Heat instance")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="network-policies">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:network-policy" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vf-module">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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-name",dependentOn="generic-vnf",container="vf-modules")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="vf-module-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of vf-module.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vf-module-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of vf-module")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="orchestration status of this vf-module, mastered by MSO")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="is-base-vf-module" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is base vf module")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="persona-model-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="persona-model-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="persona-model-customization-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="widget-model-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="widget-model-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="contrail-service-instance-fqdn" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the Contrail unique ID for a service-instance")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vf-modules">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of vf-modules, a deployment unit of VNFCs")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:vf-module" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="generic-vnf">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="vnf-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of VNF.  This is unique across the graph.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vnf-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of VNF.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vnf-name2" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Alternate name of VNF.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vnf-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource.  This field has been overloaded and clients should expect changes                  to occur in the future to this field as ASDC matures.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="service-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Unique identifier of service from ASDC")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="regional-resource-zone" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="prov-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="operational-state" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="license-key" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="License key")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="equipment-role" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Client should send valid enumerated value")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, used by MSO.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="mso-catalog-key" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="management-option" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate
+                      target="field">@org.openecomp.aai.annotations.Metadata(description="identifier of managed by OPENECOMP or customer")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipv4-oam-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipv4-loopback0-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="v4 Loopback0 address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="nm-lan-v6-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="v6 Loopback address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="management-v6-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="v6 management address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vcpu" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="number of vcpus ordered for this instance of VNF, used for VNFs with no vservers/flavors")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vcpu-units" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="units associated with vcpu, used for VNFs with no vservers/flavors")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vmemory" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="number of GB of memory ordered for this instance of VNF, used for VNFs with no vservers/flavors")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vmemory-units" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="units associated with vmemory, used for VNFs with no vservers/flavors")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vdisk" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="number of vdisks ordered for this instance of VNF, used for VNFs with no vservers/flavors")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vdisk-units" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="units associated with vdisk, used for VNFs with no vservers/flavors")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="in-maint" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="is-closed-loop-disabled" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="summary-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="details regarding the generic-vnf operation")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="encrypted-access-flag" type="xs:boolean" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="indicates whether generic-vnf access uses SSH")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="entitlement-assignment-group-uuid" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="UUID of the Entitlement group used for licensing VNFs")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="entitlement-resource-uuid" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="UUID of the specific entitlement resource")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="license-assignment-group-uuid" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="UUID of the license assignment group")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="license-key-uuid" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="UUID of the actual license resource")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="persona-model-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="persona-model-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="persona-model-customization-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="widget-model-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="widget-model-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="as-number" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="as-number of the VNF")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="regional-resource-subzone" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="represents sub zone of the rr plane")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:l-interfaces" minOccurs="0"/>
+        <xs:element ref="tns:lag-interfaces" minOccurs="0"/>
+        <xs:element ref="tns:vf-modules" minOccurs="0"/>
+        <xs:element ref="tns:licenses" minOccurs="0"/>
+        <xs:element ref="tns:entitlements" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="generic-vnfs">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of VNFs")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:generic-vnf" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="lag-link">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="LAG links can connect lag-interfaces",indexedProps="link-name",container="lag-links",namespace="network")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="link-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Alphabetical concatenation of lag-interface names")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="lag-links">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of link aggregation connections")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:lag-link" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="newvce">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="vnf-id2" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of VNF, can't use same attribute name right now until we promote this new object")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vnf-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of VNF.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vnf-name2" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Alternate name of VNF.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vnf-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource.  This field has been overloaded and clients should expect changes                  to occur in the future to this field as ASDC matures.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="prov-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="operational-state" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="license-key" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="License key")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipv4-oam-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Address tail-f uses to configure vpe, also used for troubleshooting and is IP used for traps generated by VPE (v4-loopback0-ip-address).")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="equipment-role" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Client should send valid enumerated value, e.g., VPE.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipv4-loopback0-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="v4 Loopback0 address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="mso-catalog-key" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:l-interfaces" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="newvces">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:newvce" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="pnf">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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 OPENECOMP node or uCPE.",indexedProps="pnf-name,orchestration-status,inv-status",searchable="pnf-name",uniqueProps="pnf-name",container="pnfs",namespace="network")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="pnf-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="unique name of Physical Network Function.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="pnf-name2" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="name of Physical Network Function.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="pnf-name2-source" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="source of name2")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="pnf-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="id of pnf")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="equip-type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Equipment type.  Source of truth should define valid values.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="equip-vendor" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Equipment vendor.  Source of truth should define valid values.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="equip-model" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Equipment model.  Source of truth should define valid values.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="management-option" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="identifier of managed by OPENECOMP or customer")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipaddress-v4-oam" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ipv4-oam-address with new naming convention for IP addresses")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="sw-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="sw-version is the version of SW for the hosted application on the PNF.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="orchestration-status is the status of orchestration on the PNF.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="in-maint" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="frame-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ID of the physical frame (relay rack) where pnf is installed.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="serial-number" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Serial number of the device")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipaddress-v4-loopback-0" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV4 Loopback 0 address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipaddress-v6-loopback-0" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV6 Loopback 0 address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipaddress-v4-aim" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV4 AIM address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipaddress-v6-aim" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV6 AIM address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipaddress-v6-oam" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV6 OAM address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="inv-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="CANOPI's inventory status.  Only set with values exactly as defined by CANOPI.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:p-interfaces" minOccurs="0"/>
+        <xs:element ref="tns:lag-interfaces" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="pnfs">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of Physical Network Functions.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:pnf" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="physical-link">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="link-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="e.g., hostnameA_p-connection_nameA_hostnameZ+p_connection-nameZ")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="speed-value" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the numeric part of the speed")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="speed-units" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the units corresponding to the speed")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="circuit-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Circuit it")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="dual-mode" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Dual access mode (e.g., primary, secondary")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="management-option" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="To provide information on who manages this circuit. A&amp;AI or 3rd party transport provider")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="service-provider-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of the service Provider on this link.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="physical-links">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:physical-link" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vig-server">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="vig-address-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="indicates whether the VIG is for AVPN or INTERNET")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipaddress-v4-vig" type="xs:string" minOccurs="0" maxOccurs="unbounded">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="v4 IP of the vig server")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipaddress-v6-vig" type="xs:string" minOccurs="0" maxOccurs="unbounded">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="v6 IP of the vig server")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vig-servers">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:vig-server" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="ipsec-configuration">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="ipsec-configuration-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="UUID of this configuration")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="requested-vig-address-type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicate the type of VIG server like AVPN, INTERNET, BOTH")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="requested-encryption-strength" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Encryption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="requested-dmz-type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="OPENECOMP can offer a shared DMZ or a DMZ specific to a customer")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="shared-dmz-network-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Network address of shared DMZ")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="requested-customer-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="If the DMZ is a custom DMZ, this field will indicate the customer information")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ike-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="can be 1 or 2")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ikev1-authentication" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Contains values like md5, sha1, sha256, sha384")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ikev1-encryption" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Encyption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ikev1-dh-group" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Diffie-Hellman group like DH-GROUP2, DH-GROUP5, DH-GROUP14")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ikev1-am-group-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Group name defined in VIG for clients using aggressive mode")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ikev1-am-password" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="pre-shared key for the above group name ")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ikev1-sa-lifetime" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Lifetime for IKEv1 SA")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipsec-authentication" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="md5, sha1, sha256, sha384")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipsec-encryption" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipsec-sa-lifetime" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Life time for IPSec SA")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipsec-pfs" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="enable PFS or not")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="xauth-userid" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="user ID for xAuth, sm-user,ucpeHostName,nmteHostName")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="xauth-user-password" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Encrypted using the Juniper $9$ algorithm")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="dpd-interval" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The time between DPD probe")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="dpd-frequency" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Maximum number of DPD before claiming the tunnel is down")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:vig-servers" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="ipsec-configurations">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:ipsec-configuration" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="route-table-reference">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="route-table-reference-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="route-table-reference-fqdn" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="FQDN entry in the route table.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Concurrency value")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="route-table-references">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of openstack route table references")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:route-table-reference" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="instance-group">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="General mechanism for grouping instances",nameProps="description",uniqueProps="id",indexedProps="id,description,type,sub-type",container="instance-groups",namespace="network")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Instance Group ID, UUID assigned to this instance.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="description" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Descriptive text to help identify the usage of this instance-group")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Only valid value today is lower case ha for high availability")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="sub-type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Valid values for ha type are [geo-activeactive, geo-activestandby, local-activeactive, local-activestandby]")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Concurrency value")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="instance-groups">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of openstack route table references")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:instance-group" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="network">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Namespace for network inventory resources.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:logical-links" minOccurs="0"/>
+        <xs:element ref="tns:site-pair-sets" minOccurs="0"/>
+        <xs:element ref="tns:vpn-bindings" minOccurs="0"/>
+        <xs:element ref="tns:vpls-pes" minOccurs="0"/>
+        <xs:element ref="tns:multicast-configurations" minOccurs="0"/>
+        <xs:element ref="tns:vces" minOccurs="0"/>
+        <xs:element ref="tns:vpes" minOccurs="0"/>
+        <xs:element ref="tns:vnfcs" minOccurs="0"/>
+        <xs:element ref="tns:l3-networks" minOccurs="0"/>
+        <xs:element ref="tns:network-policies" minOccurs="0"/>
+        <xs:element ref="tns:generic-vnfs" minOccurs="0"/>
+        <xs:element ref="tns:lag-links" minOccurs="0"/>
+        <xs:element ref="tns:newvces" minOccurs="0"/>
+        <xs:element ref="tns:pnfs" minOccurs="0"/>
+        <xs:element ref="tns:physical-links" minOccurs="0"/>
+        <xs:element ref="tns:ipsec-configurations" minOccurs="0"/>
+        <xs:element ref="tns:route-table-references" minOccurs="0"/>
+        <xs:element ref="tns:instance-groups" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="reserved-prop-names">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="last-mod-source-of-truth" type="xs:string" minOccurs="0"/>
+        <xs:element name="aai-node-type" type="xs:string" minOccurs="0"/>
+        <xs:element name="aai-created-ts" type="xs:unsignedInt" minOccurs="0"/>
+        <xs:element name="aai-unique-key" type="xs:string" minOccurs="0"/>
+        <xs:element name="aai-last-mod-ts" type="xs:unsignedInt" minOccurs="0"/>
+        <xs:element name="source-of-truth" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="edge-prop-names">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="edgeLabel" type="xs:string" minOccurs="0"/>
+        <xs:element name="direction" type="xs:string" minOccurs="0"/>
+        <xs:element name="multiplicityRule" type="xs:string" minOccurs="0"/>
+        <xs:element name="isParent" type="xs:boolean" minOccurs="0"/>
+        <xs:element name="usesResource" type="xs:boolean" minOccurs="0"/>
+        <xs:element name="hasDelTarget" type="xs:boolean" minOccurs="0"/>
+        <xs:element name="SVC-INFRA" type="xs:string" minOccurs="0"/>
+        <xs:element name="SVC-INFRA-REV" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="aai-internal">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:reserved-prop-names" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element ref="tns:edge-prop-names" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="inventory">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:search" minOccurs="0"/>
+        <xs:element ref="tns:actions" minOccurs="0"/>
+        <xs:element ref="tns:cloud-infrastructure" minOccurs="0"/>
+        <xs:element ref="tns:license-management" minOccurs="0"/>
+        <xs:element ref="tns:business" minOccurs="0"/>
+        <xs:element ref="tns:service-design-and-creation" minOccurs="0"/>
+        <xs:element ref="tns:network" minOccurs="0"/>
+        <xs:element ref="tns:aai-internal" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="notification-event-header">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="id" type="xs:string" minOccurs="0"/>
+        <xs:element name="timestamp" type="xs:string" minOccurs="0"/>
+        <xs:element name="source-name" type="xs:string" minOccurs="0"/>
+        <xs:element name="domain" type="xs:string" minOccurs="0"/>
+        <xs:element name="sequence-number" type="xs:string" minOccurs="0"/>
+        <xs:element name="severity" type="xs:string" minOccurs="0"/>
+        <xs:element name="event-type" type="xs:string" minOccurs="0"/>
+        <xs:element name="version" type="xs:string" minOccurs="0"/>
+        <xs:element name="action" type="xs:string" minOccurs="0"/>
+        <xs:element name="entity-type" type="xs:string" minOccurs="0"/>
+        <xs:element name="top-entity-type" type="xs:string" minOccurs="0"/>
+        <xs:element name="entity-link" type="xs:string" minOccurs="0"/>
+        <xs:element name="status" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="notification-event">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="cambria.partition" type="xs:string" minOccurs="0"/>
+        <xs:element ref="tns:notification-event-header" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="query-parameters">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="QueryParameters for performing a named-query or model query")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:named-query" minOccurs="0"/>
+        <xs:element ref="tns:model" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="instance-filter">
+    <xs:complexType>
+      <xs:sequence/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="instance-filters">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="InstanceFilters for performing a named-query or model query")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:instance-filter" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="model-and-named-query-search">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="ModelAndNamedQuerySearch holds query-parameters and instance-properties for performing a named-query or model query")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:query-parameters" minOccurs="0"/>
+        <xs:element ref="tns:instance-filters" minOccurs="0"/>
+        <xs:element name="top-node-type" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="properties">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Property holder for query properties or instance properties")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="property-name" type="xs:string" minOccurs="0"/>
+        <xs:element name="property-value" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="extra-properties">
+    <xs:complexType>
+      <xs:sequence/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="inventory-response-item">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Inventory item for response list",container="inventory-response-items")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="model-name" type="xs:string" minOccurs="0"/>
+        <xs:element ref="tns:extra-properties" minOccurs="0"/>
+        <xs:element ref="tns:inventory-response-items" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="inventory-response-items">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Container for inventory items in response list",container="response-list")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:inventory-response-item" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="response-list">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Response container for the results of a named-query or model query")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:inventory-response-items" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="extra-property">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="property-name" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vnf">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Abstract vnf class",indexedProps="vnf-id",uniqueProps="vnf-id",inheritors="vce,vpe,generic-vnf",isAbstract="true")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="vnf-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of VNF.  This is unique across the graph.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+</xs:schema>
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/resources/aai_schema_v11.xsd b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/resources/aai_schema_v11.xsd
new file mode 100644
index 0000000..32655fd
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/resources/aai_schema_v11.xsd
@@ -0,0 +1,6751 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<xs:schema elementFormDefault="qualified" version="1.0" targetNamespace="http://org.onap.aai.inventory/v11" xmlns:tns="http://org.onap.aai.inventory/v11" xmlns:xs="http://www.w3.org/2001/XMLSchema"
+           xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
+           jaxb:version="2.1"
+           xmlns:annox="http://annox.dev.java.net"
+           jaxb:extensionBindingPrefixes="annox">
+
+  <xs:element name="inventory-item-data">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="property-name" type="xs:string" minOccurs="0"/>
+        <xs:element name="property-value" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="inventory-item">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="inventory-item-type" type="xs:string" minOccurs="0"/>
+        <xs:element name="inventory-item-link" type="xs:string" minOccurs="0"/>
+        <xs:element ref="tns:inventory-item-data" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element ref="tns:tagged-inventory-item-list" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="tagged-inventory-item-list">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:inventory-item" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="edge-tag-query-result">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:tagged-inventory-item-list" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="start-node-filter">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="property-name" type="xs:string" minOccurs="0"/>
+        <xs:element name="property-value" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="include-node-filter">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="include-node-type" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="secondary-filter">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="property-name" type="xs:string" minOccurs="0"/>
+        <xs:element name="filter-type" type="xs:string" minOccurs="0"/>
+        <xs:element name="property-value" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="edge-tag-query-request">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="edge-tag" type="xs:string" minOccurs="0"/>
+        <xs:element name="result-detail" type="xs:string" minOccurs="0"/>
+        <xs:element name="start-node-type" type="xs:string" minOccurs="0"/>
+        <xs:element ref="tns:start-node-filter" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element ref="tns:include-node-filter" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element ref="tns:secondary-filter" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="result-data">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="resource-type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The specific type of node in the A&amp;AI graph")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-link" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The URL to the specific resource")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="search-results">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:result-data" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="relationship-data">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="relationship-key" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="A keyword provided by A&amp;AI to indicate an attribute.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="relationship-value" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Value of the attribute.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="related-to-property">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="property-key" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Key part of a key/value pair")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="property-value" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Value part of a key/value pair")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="relationship">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="related-to" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="A keyword provided by A&amp;AI to indicate type of node.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="related-link" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to the object in A&amp;AI.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-data" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element ref="tns:related-to-property" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="relationship-list">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:relationship" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="oam-network">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="network-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="UUID of the network. Unique across a cloud-region")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="network-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of the network.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="cvlan-tag" type="xs:unsignedInt">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="cvlan-id")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipv4-oam-gateway-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipv4-oam-gateway-address-prefix-length" type="xs:int" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="oam-networks">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of OAM networks, to be deprecated shortly.  Do not use for new purposes. ")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:oam-network" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="dvs-switch">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Digital virtual switch metadata, used by SDN-C to configure VCEs.  A&amp;AI needs to receive this data from the PO deployment team and administer it using the provisioningTool.sh into A&amp;AI. ",indexedProps="vcenter-url,switch-name",dependentOn="cloud-region",container="dvs-switches")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="switch-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="DVS switch name")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vcenter-url" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL used to reach the vcenter")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="dvs-switches">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of digital virtual switch metadata used for vmWare VCEs and GenericVnfs.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:dvs-switch" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="availability-zone">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Availability zone, a collection of compute hosts/pservers",indexedProps="availability-zone-name",dependentOn="cloud-region",container="availability-zones")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="availability-zone-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Name of the availability zone.  Unique across a cloud region")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="hypervisor-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Type of hypervisor.  Source of truth should define valid values.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="operational-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="State that indicates whether the availability zone should be used, etc.  Source of truth should define valid values.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="az-and-dvs-switches">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:dvs-switches" minOccurs="0"/>
+        <xs:element ref="tns:availability-zone" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="sdn-zone-response">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:oam-networks" minOccurs="0"/>
+        <xs:element ref="tns:az-and-dvs-switches" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="search">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:edge-tag-query-result" minOccurs="0"/>
+        <xs:element ref="tns:edge-tag-query-request" minOccurs="0"/>
+        <xs:element ref="tns:search-results" minOccurs="0"/>
+        <xs:element ref="tns:sdn-zone-response" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="update-node-key">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="key-name" type="xs:string" minOccurs="0"/>
+        <xs:element name="key-value" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="action-data">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="property-name" type="xs:string" minOccurs="0"/>
+        <xs:element name="property-value" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="action">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="action-type" type="xs:string" minOccurs="0"/>
+        <xs:element ref="tns:action-data" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="update">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Serves a PATCH like function.  Does not enforce concurrency control.  Clear each usage with AAI team.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="update-node-type" type="xs:string"/>
+        <xs:element ref="tns:update-node-key" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element name="update-node-uri" type="xs:string" minOccurs="0"/>
+        <xs:element ref="tns:action" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="key-data">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="key-name" type="xs:string" minOccurs="0"/>
+        <xs:element name="key-value" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="notify">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="event-id" type="xs:string"/>
+        <xs:element name="node-type" type="xs:string" minOccurs="0"/>
+        <xs:element name="event-trigger" type="xs:string" minOccurs="0"/>
+        <xs:element ref="tns:key-data" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element name="selflink" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="actions">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="APIs that are more action related than REST (e.g., notify, update).")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:update" minOccurs="0"/>
+        <xs:element ref="tns:notify" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="ctag-pool">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="target-pe" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="The Target provider edge router")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="availability-zone-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Name of the availability zone")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ctag-pool-purpose" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Describes what the intended purpose of this pool is.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ctag-values" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Comma separated list of ctags")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="ctag-pools">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:ctag-pool" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="complex">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="physical-location-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique identifier for physical location, e.g., CLLI")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="data-center-code" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Data center code which can be an alternate way to identify a complex")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="complex-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Gamma complex name for LCP instance.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="identity-url" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL of the keystone identity service")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="physical-location-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Type, e.g., central office, data center.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="street1" type="xs:string"/>
+        <xs:element name="street2" type="xs:string" minOccurs="0"/>
+        <xs:element name="city" type="xs:string"/>
+        <xs:element name="state" type="xs:string" minOccurs="0"/>
+        <xs:element name="postal-code" type="xs:string"/>
+        <xs:element name="country" type="xs:string"/>
+        <xs:element name="region" type="xs:string"/>
+        <xs:element name="latitude" type="xs:string" minOccurs="0"/>
+        <xs:element name="longitude" type="xs:string" minOccurs="0"/>
+        <xs:element name="elevation" type="xs:string" minOccurs="0"/>
+        <xs:element name="lata" type="xs:string" minOccurs="0"/>
+        <xs:element ref="tns:ctag-pools" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="complexes">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:complex" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="volume-group">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="volume-group-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of volume-group.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="volume-group-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of the volume group.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this volume-group")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vnf-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this volume-group")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-customization-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vf-module-model-customization-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="helps relate the volume group to the vf-module whose components will require the volume group")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="volume-groups">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of persistent block-level storage.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:volume-group" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="volume">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Ephemeral Block storage volume.",indexedProps="volume-id",dependentOn="vserver",container="volumes")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="volume-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of block storage volume relative to the vserver.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="volume-selflink" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="volumes">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of ephemeral Block storage volumes.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:volume" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="l3-interface-ipv4-address-list">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="l3-interface-ipv4-address" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="IP address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="l3-interface-ipv4-prefix-length" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Prefix length, 32 for single address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vlan-id-inner" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Inner VLAN tag")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vlan-id-outer" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Outer VLAN tag")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="is-floating" type="xs:boolean" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicator of fixed or floating address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="neutron-network-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="neutron-subnet-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="l3-interface-ipv6-address-list">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="l3-interface-ipv6-address" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="IP address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="l3-interface-ipv6-prefix-length" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Prefix length, 128 for single address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vlan-id-inner" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Inner VLAN tag")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vlan-id-outer" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Outer VLAN tag")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="is-floating" type="xs:boolean" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicator of fixed or floating address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="neutron-network-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="neutron-subnet-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vlan">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Definition of vlan",indexedProps="vlan-interface,vlan-id-inner,vpn-key",dependentOn="l-interface",container="vlans")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="vlan-interface" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="String that identifies the interface")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vlan-id-inner" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Inner VLAN tag")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vlan-id-outer" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Outer VLAN tag")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="speed-value" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the numeric part of the speed")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="speed-units" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the units corresponding to the speed")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vlan-description" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used to describe (the service associated with) the vlan")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="backdoor-connection" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Whether customer is going to use this VLAN for backdoor connection to another customer premise device.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vpn-key" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This indicates the customers VPN ID associated with this vlan")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Status of a vnf's vlan interface, on which the customer circuit resides, mastered by SDN-C.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="in-maint" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="prov-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Prov Status of the VLAN configuration related to a logical interface. Valid values [PREPROV/NVTPROV/PROV].")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="is-ip-unnumbered" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="Flag indicating the interface uses the IP Unnumbered configuration.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:l3-interface-ipv4-address-list" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element ref="tns:l3-interface-ipv6-address-list" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vlans">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:vlan" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="sriov-vf">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="pci-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="PCI ID used to identify the sriov-vf")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vf-vlan-filter" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This metadata provides option to specify list of VLAN filters applied on VF to pass the traffic to VM.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vf-mac-filter" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vf-vlan-strip" type="xs:boolean" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vf-vlan-anti-spoof-check" type="xs:boolean" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vf-mac-anti-spoof-check" type="xs:boolean" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vf-mirrors" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vf-broadcast-allow" type="xs:boolean" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vf-unknown-multicast-allow" type="xs:boolean" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vf-unknown-unicast-allow" type="xs:boolean" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vf-insert-stag" type="xs:boolean" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This option, if set to true, instructs to insert outer tag after traffic comes out of VM.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vf-link-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This option is used to set the link status.  Valid values as of 1607 are on, off, and auto.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="neutron-network-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron network id of the interface")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="sriov-vfs">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of SR-IOV Virtual Functions.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:sriov-vf" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="l-interface">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="interface-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Name given to the interface")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="interface-role" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="E.g., CUSTOMER, UPLINK, etc.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="v6-wan-link-ip" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Questionably placed - v6 ip addr of this interface (is in vr-lan-interface from Mary B.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="selflink" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="interface-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ID of interface")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="macaddr" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="MAC address for the interface")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="network-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of the network")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="management-option" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Whether A&amp;AI should be managing this interface of not. Could have value like CUSTOMER")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="interface-description" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Human friendly text regarding this interface.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="is-port-mirrored" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not port is a mirrored.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="in-maint" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="prov-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Prov Status of the logical interface. Valid values [PREPROV/NVTPROV/PROV].")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="is-ip-unnumbered" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="Flag indicating the interface uses the IP Unnumbered configuration.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:vlans" minOccurs="0"/>
+        <xs:element ref="tns:sriov-vfs" minOccurs="0"/>
+        <xs:element ref="tns:l-interfaces" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:l3-interface-ipv4-address-list" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element ref="tns:l3-interface-ipv6-address-list" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="l-interfaces">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of logical interfaces.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:l-interface" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vserver">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="vserver-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique identifier for this vserver relative to its tenant")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vserver-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of vserver")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vserver-name2" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Alternative name of vserver")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="prov-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vserver-selflink" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="in-maint" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="is-closed-loop-disabled" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether closed loop function is enabled on this node")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:volumes" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:l-interfaces" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vservers">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of virtual Servers, aka virtual machines or VMs.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:vserver" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="tenant">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="tenant-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id relative to the cloud-region.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="tenant-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Readable name of tenant")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="tenant-context" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This field will store the tenant context.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:vservers" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="tenants">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of openstack tenants.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:tenant" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="flavor">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Openstack flavor.",nameProps="flavor-name",indexedProps="flavor-name,flavor-id",dependentOn="cloud-region",container="flavors")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="flavor-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Flavor id, expected to be unique across cloud-region.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="flavor-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Flavor name")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="flavor-vcpus" type="xs:int" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Number of CPUs")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="flavor-ram" type="xs:int" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Amount of memory")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="flavor-disk" type="xs:int" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Disk space")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="flavor-ephemeral" type="xs:int" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Amount of ephemeral disk space")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="flavor-swap" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="amount of swap space allocation")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="flavor-is-public" type="xs:boolean" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="whether flavor is available to all users or private to the tenant it was created in.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="flavor-selflink" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="flavor-disabled" type="xs:boolean" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Boolean as to whether this flavor is no longer enabled")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="flavors">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of openstack flavors.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:flavor" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="group-assignment">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="group-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Group id, expected to be unique across cloud-region.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="group-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Group type - the type of group this instance refers to")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="group-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Group name - name assigned to the group")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="group-description" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Group description - description of the group")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="group-assignments">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of openstack group assignments")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:group-assignment" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="snapshot">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="snapshot-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Snapshot id, this is the key UUID assoc associated in glance with the snapshots.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="snapshot-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Snapshot name")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="snapshot-architecture" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Operating system architecture")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="snapshot-os-distro" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="snapshot-os-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The operating system version as specified by the distributor.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="application" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The application that the image instantiates.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="application-vendor" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The vendor of the application.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="application-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The version of the application.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="snapshot-selflink" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="prev-snapshot-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This field contains the UUID of the previous snapshot (if any).")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="snapshots">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of openstack snapshots")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:snapshot" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="metadatum">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Key/value pairs",indexedProps="metaname",dependentOn="tenant,image,service-instance,connector,model",container="metadata")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="metaname" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true)</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="metaval" type="xs:string"/>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="metadata">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of metadatum (key/value pairs)")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:metadatum" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="image">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Openstack image.",nameProps="image-name",indexedProps="application,image-name,application-vendor,image-id,application-version",dependentOn="cloud-region",container="images")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="image-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Image id, expected to be unique across cloud region")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="image-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Image name")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="image-architecture" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Operating system architecture.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="image-os-distro" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="image-os-version" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The operating system version as specified by the distributor.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="application" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The application that the image instantiates.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="application-vendor" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The vendor of the application.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="application-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The version of the application.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="image-selflink" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:metadata" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="images">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collectio of Openstack images.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:image" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="availability-zones">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of availability zones")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:availability-zone" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="cloud-region">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="cloud-region designates an installation of a cloud cluster or region or instantiation. In AT&amp;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&amp;T's AIC.",indexedProps="cloud-owner,cloud-region-id,cloud-type,owner-defined-type",nameProps="owner-defined-type",container="cloud-regions",namespace="cloud-infrastructure")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="cloud-owner" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Identifies the vendor and cloud name, e.g., att-aic. First part of composite key should be formatted as vendor-cloudname")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="cloud-region-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Identifier used by the vendor for the region. Second part of composite key")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="cloud-type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Type of the cloud (e.g., openstack)")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="owner-defined-type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Cloud-owner defined type indicator (e.g., dcp, lcp)")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="cloud-region-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Software version employed at the site.  NOTE - THIS FIELD IS NOT KEPT UP TO DATE.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="identity-url" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL of the keystone identity service")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="cloud-zone" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Zone where the cloud is homed.  NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="complex-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="complex name for cloud-region instance.  NOTE - THIS FIELD IS NOT CORRECTLY POPULATED.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="sriov-automation" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="Whether the cloud region supports (true) or does not support (false) SR-IOV automation.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:volume-groups" minOccurs="0"/>
+        <xs:element ref="tns:tenants" minOccurs="0"/>
+        <xs:element ref="tns:flavors" minOccurs="0"/>
+        <xs:element ref="tns:group-assignments" minOccurs="0"/>
+        <xs:element ref="tns:snapshots" minOccurs="0"/>
+        <xs:element ref="tns:images" minOccurs="0"/>
+        <xs:element ref="tns:dvs-switches" minOccurs="0"/>
+        <xs:element ref="tns:oam-networks" minOccurs="0"/>
+        <xs:element ref="tns:availability-zones" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="cloud-regions">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(maximumDepth="0")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:cloud-region" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="network-profile">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Network profile populated by SDN-GP for SNMP",indexedProps="nm-profile-name",container="network-profiles",namespace="cloud-infrastructure")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="nm-profile-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique name of network profile.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="community-string" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Encrypted SNMP community string")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="network-profiles">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of network profiles")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:network-profile" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="sriov-pf">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="SR-IOV Physical Function",indexedProps="pf-pci-id",dependentOn="p-interface",container="sriov-pfs")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="pf-pci-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Identifier for the sriov-pf")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="sriov-pfs">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of SR-IOV Physical Functions.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:sriov-pf" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="p-interface">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="interface-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Name that identifies the physical interface")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="speed-value" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the numeric part of the speed")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="speed-units" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the units corresponding to the speed")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="port-description" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Nature of the services and connectivity on this port.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="equipment-identifier" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="CLEI or other specification for p-interface hardware.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="interface-role" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Role specification for p-interface hardware.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="interface-type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicates the physical properties of the interface.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="prov-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="in-maint" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="inv-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="inventory status")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:sriov-pfs" minOccurs="0"/>
+        <xs:element ref="tns:l-interfaces" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="p-interfaces">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of physical interfaces.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:p-interface" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="lag-interface">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Link aggregate interface",indexedProps="interface-name,interface-id,interface-role",dependentOn="generic-vnf,pserver,vpls-pe,pnf",container="lag-interfaces")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="interface-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Name that identifies the link aggregate interface")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="interface-description" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Human friendly text regarding this interface.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="speed-value" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the numeric part of the speed")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="speed-units" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the units corresponding to the speed")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="interface-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ID of interface")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="interface-role" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in ECOMP Yang models.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="prov-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="in-maint" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:l-interfaces" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="lag-interfaces">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of link aggregate interfaces.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:lag-interface" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="pserver">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="hostname" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Value from executing hostname on the compute node.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ptnii-equip-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="PTNII name")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="number-of-cpus" type="xs:int" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Number of cpus")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="disk-in-gigabytes" type="xs:int" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Disk size, in GBs")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ram-in-megabytes" type="xs:int" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="RAM size, in MBs")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="equip-type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Equipment type.  Source of truth should define valid values.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="equip-vendor" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Equipment vendor.  Source of truth should define valid values.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="equip-model" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Equipment model.  Source of truth should define valid values.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="fqdn" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Fully-qualified domain name")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="pserver-selflink" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipv4-oam-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used to configure device, also used for troubleshooting and is IP used for traps generated by device.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="serial-number" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Serial number, may be queried")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipaddress-v4-loopback-0" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV4 Loopback 0 address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipaddress-v6-loopback-0" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV6 Loopback 0 address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipaddress-v4-aim" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV4 AIM address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipaddress-v6-aim" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV6 AIM address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipaddress-v6-oam" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV6 OAM address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="inv-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="CANOPI's inventory status.  Only set with values exactly as defined by CANOPI.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="pserver-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ID of Pserver")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="internet-topology" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="internet topology of Pserver")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="in-maint" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="pserver-name2" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="alternative pserver name")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="purpose" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="purpose of pserver")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="prov-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="management-option" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicates who owns and or manages the device.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="host-profile" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The host profile that defines the configuration of the pserver.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:p-interfaces" minOccurs="0"/>
+        <xs:element ref="tns:lag-interfaces" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="pservers">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of compute hosts.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:pserver" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="virtual-data-center">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="vdc-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of the vdc")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vdc-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of the virtual data center")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="virtual-data-centers">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:virtual-data-center" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="cloud-infrastructure">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Namespace for cloud infrastructure.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:complexes" minOccurs="0"/>
+        <xs:element ref="tns:cloud-regions" minOccurs="0"/>
+        <xs:element ref="tns:network-profiles" minOccurs="0"/>
+        <xs:element ref="tns:pservers" minOccurs="0"/>
+        <xs:element ref="tns:virtual-data-centers" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="license-key-resource">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="OBSOLETE OBJECT:  do not use",nameProps="name",indexedProps="assignment-group-uuid,att-uuid,name",uniqueProps="att-uuid",container="license-key-resources",namespace="license-management")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="att-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true)</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="assignment-type" type="xs:string" minOccurs="0"/>
+        <xs:element name="assignment-status" type="xs:string" minOccurs="0"/>
+        <xs:element name="assignment-group-uuid" type="xs:string"/>
+        <xs:element name="assignment-date" type="xs:string" minOccurs="0"/>
+        <xs:element name="name" type="xs:string" minOccurs="0"/>
+        <xs:element name="model-uuid" type="xs:string" minOccurs="0"/>
+        <xs:element name="model-version" type="xs:string" minOccurs="0"/>
+        <xs:element name="license-key" type="xs:string" minOccurs="0"/>
+        <xs:element name="license-key-file-url" type="xs:string" minOccurs="0"/>
+        <xs:element name="supplier-release-list" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="license-key-resources">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:license-key-resource" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="license-management">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:license-key-resources" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="connector">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="resource-instance-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of resource instance.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-invariant-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-version-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="persona-model-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="widget-model-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="widget-model-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:metadata" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="connectors">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:connector" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="tunnel-xconnect">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="bandwidth-up-wan1" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The WAN uplink bandwidth for WAN1")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="bandwidth-down-wan1" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The WAN downlink bandwidth for WAN1")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="bandwidth-up-wan2" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The WAN uplink bandwidth for WAN2")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="bandwidth-down-wan2" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The WAN downlink bandwidth for WAN2")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Concurrency value")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="tunnel-xconnects">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="This object is used to store the specific tunnel cross connect aspects of an allotted resource")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:tunnel-xconnect" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="allotted-resource">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="description" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The descriptive information assigned to this allotted resource instance")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="selflink" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Link back to more information in the controller")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-invariant-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-version-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="persona-model-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Concurrency value")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="operational-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Generic description of the type of allotted resource.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="role" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="role in the network that this resource will be providing.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:tunnel-xconnects" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="allotted-resources">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="This object is used to store slices of services being offered")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:allotted-resource" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="service-instance">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="service-instance-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this instance of a service")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="service-instance-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This field will store a name assigned to the service-instance.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="service-type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="String capturing type of service.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="service-role" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="String capturing the service role.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="environment-context" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This field will store the environment context assigned to the service-instance.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="workload-context" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This field will store the workload context assigned to the service-instance.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-invariant-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-version-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="persona-model-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="widget-model-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="widget-model-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="bandwidth-total" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicates the total bandwidth to be used for this service.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="bandwidth-up-wan1" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="indicates the upstream bandwidth this service will use on the WAN1 port of the physical device.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="bandwidth-down-wan1" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="indicates the downstream bandwidth this service will use on the WAN1 port of the physical device.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="bandwidth-up-wan2" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="indicates the upstream bandwidth this service will use on the WAN2 port of the physical device.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="bandwidth-down-wan2" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="indicates the downstream bandwidth this service will use on the WAN2 port of the physical device.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vhn-portal-url" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL customers will use to access the vHN Portal.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="service-instance-location-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="An identifier that customers assign to the location where this service is being used.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="selflink" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Path to the controller object.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this service.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:metadata" minOccurs="0"/>
+        <xs:element ref="tns:allotted-resources" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="service-instances">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of service instances")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:service-instance" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="service-subscription">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Object that group service instances.",indexedProps="service-type",dependentOn="customer",container="service-subscriptions",crossEntityReference="service-instance,service-type")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="service-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Value defined by orchestration to identify this service across ECOMP.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="temp-ub-sub-account-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This property will be deleted from A&amp;AI in the near future. Only stop gap solution.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:service-instances" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="service-subscriptions">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of objects that group service instances.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:service-subscription" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="customer">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="global-customer-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Global customer id used across ECOMP to uniquely identify customer.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="subscriber-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Subscriber name, an alternate way to retrieve a customer.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="subscriber-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Subscriber type, a way to provide VID with only the INFRA customers.",defaultValue="CUST")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:service-subscriptions" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="customers">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of customer identifiers to provide linkage back to BSS information.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:customer" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="business">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Namespace for business related constructs")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:connectors" minOccurs="0"/>
+        <xs:element ref="tns:customers" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vnf-image">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="vnf-image-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of this asset")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="application" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The application that the image instantiates.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="application-vendor" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The vendor of the application.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="application-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The version of the application.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="selflink" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vnf-images">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of image objects that pertain to a VNF that doesn't have associated vservers.  This is a kludge.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:vnf-image" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="service">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="service-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="service-description" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Description of the service")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="service-selflink" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="service-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="service version")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="services">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of service model definitions.  Likely to be deprecated in favor of models from ASDC.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:service" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="service-capability">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="service-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vnf-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="service-capabilities">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of service capabilities.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:service-capability" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="element-choice-set">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="element-choice-set-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="element-choice-set-name" type="xs:string"/>
+        <xs:element name="cardinality" type="xs:string" minOccurs="0"/>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0"/>
+        <xs:element ref="tns:model-elements" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="element-choice-sets">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:element-choice-set" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="constrained-element-set">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="constrained-element-set-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="constraint-type" type="xs:string"/>
+        <xs:element name="check-type" type="xs:string"/>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0"/>
+        <xs:element ref="tns:element-choice-sets" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="constrained-element-sets">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:constrained-element-set" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="model-constraint">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="model-constraint-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="constrained-element-set-uuid-to-replace" type="xs:string"/>
+        <xs:element ref="tns:constrained-element-sets" minOccurs="0"/>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="model-constraints">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:model-constraint" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="model-element">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="model-element-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="new-data-del-flag" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicates whether this element was created as part of instantiation from this model")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="cardinality" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="How many of this type of element are required/allowed")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="linkage-points" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:model-elements" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:model-constraints" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Describes new constraints on this model element that are not part of that model's definition")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="model-elements">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:model-element" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="model-ver">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="model-version-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of the model, which can change from version to version.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-version" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Version")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-description" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Description")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:model-elements" minOccurs="0"/>
+        <xs:element ref="tns:metadata" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="model-vers">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:model-ver" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="model">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="model-invariant-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:model-vers" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="models">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of subgraph definitions provided by ASDC to describe the inventory assets and their connections related to ASDC models")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:model" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="related-lookup">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="TBD",uniqueProps="related-lookup-uuid",indexedProps="related-lookup-uuid",allowDirectRead="true",allowDirectWrite="false",container="related-lookups")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="related-lookup-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="source-node-type" type="xs:string"/>
+        <xs:element name="source-node-property" type="xs:string"/>
+        <xs:element name="target-node-type" type="xs:string"/>
+        <xs:element name="target-node-property" type="xs:string"/>
+        <xs:element name="property-collect-list" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="related-lookups">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:related-lookup" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="property-constraint">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="TBD",uniqueProps="property-constraint-uuid",indexedProps="property-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",container="property-constraints")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="property-constraint-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="constraint-type" type="xs:string"/>
+        <xs:element name="property-name" type="xs:string"/>
+        <xs:element name="property-value" type="xs:string"/>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="property-constraints">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:property-constraint" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="named-query-element">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="TBD",uniqueProps="named-query-element-uuid",indexedProps="named-query-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="named-query-elements")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="named-query-element-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="property-collect-list" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0"/>
+        <xs:element name="property-limit-desc" type="xs:string" minOccurs="0"/>
+        <xs:element name="do-not-output" type="xs:string" minOccurs="0"/>
+        <xs:element ref="tns:named-query-elements" minOccurs="0"/>
+        <xs:element ref="tns:related-lookups" minOccurs="0"/>
+        <xs:element ref="tns:property-constraints" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="named-query-elements">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:named-query-element" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="named-query">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="named-query-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true)</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="named-query-name" type="xs:string"/>
+        <xs:element name="named-query-version" type="xs:string"/>
+        <xs:element name="required-input-params" minOccurs="0">
+          <xs:complexType>
+            <xs:annotation>
+              <xs:appinfo>
+                <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+              </xs:appinfo>
+            </xs:annotation>
+            <xs:sequence>
+              <xs:element name="required-input-param" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+            </xs:sequence>
+          </xs:complexType>
+        </xs:element>
+        <xs:element name="description" type="xs:string" minOccurs="0"/>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0"/>
+        <xs:element ref="tns:named-query-elements" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="named-queries">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:named-query" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="service-design-and-creation">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Namespace for objects managed by ASDC")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:vnf-images" minOccurs="0"/>
+        <xs:element ref="tns:services" minOccurs="0"/>
+        <xs:element ref="tns:service-capabilities" minOccurs="0"/>
+        <xs:element ref="tns:models" minOccurs="0"/>
+        <xs:element ref="tns:named-queries" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="logical-link">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="link-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="e.g., evc-name, or vnf-nameA_interface-nameA_vnf-nameZ_interface-nameZ")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="in-maint" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="link-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Type of logical link, e.g., evc")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="speed-value" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the numeric part of the speed")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="speed-units" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the units corresponding to the speed")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ip-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="v4, v6, or ds for dual stack (should be att-ip-version)")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="routing-protocol" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="For example, static or BGP")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-invariant-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-version-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="persona-model-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="widget-model-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="widget-model-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="operational-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indication of operational status of the logical link.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="prov-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="link-role" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indication of the network use of the logical link.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="link-name2" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Alias or alternate name (CLCI or D1 name).")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="link-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="UUID of the logical-link, SDNC generates this.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="circuit-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Circuit id")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="purpose" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Reason for this entity, role it is playing")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="logical-links">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of logical connections")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:logical-link" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="class-of-service">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(indexedProps="cos",dependentOn="site-pair",container="classes-of-service")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="cos" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="unique identifier of probe")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="probe-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="identifier of probe")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="probe-type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="type of probe")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="classes-of-service">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="class-of-service of probe")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:class-of-service" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="site-pair">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(indexedProps="site-pair-id",uniqueProps="site-pair-id",dependentOn="routing-instance",container="site-pairs")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="site-pair-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="unique identifier of probe")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="source-ip" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Prefix address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="destination-ip" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Prefix address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ip-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ip version, v4, v6")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="destination-hostname" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Hostname of the destination equipment to which SLAs are measured against.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="destination-equip-type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The type of destinatination equipment. Could be Router, UCPE, etc.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:classes-of-service" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="site-pairs">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="probe within a set")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:site-pair" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="routing-instance">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(indexedProps="routing-instance-id",dependentOn="site-pair-set",container="routing-instances")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="routing-instance-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of routing instance")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="rpm-owner" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="rpm owner")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:site-pairs" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="routing-instances">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="set of probes related to generic-vnf routing instance")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:routing-instance" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="site-pair-set">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="site-pair-set-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of site pair set.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:routing-instances" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="site-pair-sets">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of sets of instances for probes related to generic-vnf")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:site-pair-set" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="route-target">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Route target information",container="route-targets",dependentOn="vpn-binding",canBeLinked="true")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="global-route-target" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Number used to identify an RT, globally unique in the network")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="route-target-role" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Role assigned to this route target")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="route-targets">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of route target information")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:route-target" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vpn-binding">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="vpn-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="VPN ID, globally unique within A&amp;AI")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vpn-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="VPN Name")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vpn-platform" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the platform associated with the VPN example AVPN, Mobility")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vpn-type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Type of the vpn, should be taken from enumerated/valid values")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vpn-region" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="region of customer vpn")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="customer-vpn-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="id for this customer vpn")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="route-distinguisher" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used to distinguish the distinct VPN routes of separate customers who connect to the provider in an MPLS network.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:route-targets" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="l3-networks relate to vpn-bindings")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vpn-bindings">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:vpn-binding" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vpls-pe">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="VPLS Provider Edge routers.",indexedProps="prov-status,equipment-name",container="vpls-pes",namespace="network")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="equipment-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true)</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="prov-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipv4-oam-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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).")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="equipment-role" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Client should send valid enumerated value, e.g., VPLS-PE.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vlan-id-outer" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Temporary location for stag to get to VCE")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:p-interfaces" minOccurs="0"/>
+        <xs:element ref="tns:lag-interfaces" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vpls-pes">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of VPLS Provider Edge routers")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:vpls-pe" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="multicast-configuration">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(indexedProps="multicast-configuration-id",uniqueProps="multicast-configuration-id",container="multicast-configurations",namespace="network")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="multicast-configuration-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of multicast configuration.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="multicast-protocol" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="protocol of multicast configuration")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="rp-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="rp type of multicast configuration")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="multicast-configurations">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="multicast configuration of generic-vnf ip-address")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:multicast-configuration" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="cvlan-tag-entry">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(dependentOn="port-group",indexedProps="cvlan-tag",container="cvlan-tags")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="cvlan-tag" type="xs:unsignedInt">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="See mis-na-virtualization-platform.yang")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="cvlan-tags">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:cvlan-tag-entry" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="port-group">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="interface-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of the interface")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="neutron-network-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron network id of this Interface")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="neutron-network-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron network name of this Interface")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="interface-role" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in ECOMP Yang models.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="port-group-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Unique ID for port group in vmware")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="port-group-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Likely to duplicate value of neutron network name")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="switch-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="DVS or standard switch name (should be non-null for port groups associated with DVS)")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="orchestration-status" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="mso-catalog-key" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:cvlan-tags" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="port-groups">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:port-group" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="license">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Metadata for license group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce",container="licenses")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="group-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID for the license group the resource belongs to, should be uuid.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of a license resource. ")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Concurrency value")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="licenses">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Licenses to be allocated across resources, keyed by group-uuid and resource-uuid, related to license management")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:license" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="entitlement">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Metadata for entitlement group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce",container="entitlements")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="group-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID for the entitlement group the resource comes from, should be uuid.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of an entitlement resource. ")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Concurrency value")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="entitlements">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Entitlements, keyed by group-uuid and resource-uuid, related to license management")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:entitlement" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vce">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="vnf-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of VNF.  This is unique across the graph.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vnf-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of VNF.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vnf-name2" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Alternate name of VNF.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vnf-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="service-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Unique identifier of service, does not strictly map to ASDC services, SOON TO BE DEPRECATED.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="regional-resource-zone" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="prov-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="operational-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="license-key" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="OBSOLETE -  do not use")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="equipment-role" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Network role being played by this VNF")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="mso-catalog-key" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vpe-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Unique ID of VPE connected to this VCE.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="v6-vce-wan-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Valid v6 IP address for the WAN Link on this router.  Implied length of /64.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipv4-oam-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Address tail-f uses to configure vce, also used for troubleshooting and is IP used for traps generated by VCE.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipv4-loopback0-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Loopback0 address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="entitlement-resource-uuid" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="OBSOLETE -  see child relationships")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:port-groups" minOccurs="0"/>
+        <xs:element ref="tns:licenses" minOccurs="0"/>
+        <xs:element ref="tns:entitlements" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vces">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of Virtual Customer Edge Routers, used specifically for Gamma.  This object is deprecated.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:vce" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vnfc">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="vnfc-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of vnfc.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="nfc-naming-code" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Short code that is used in naming instances of the item being modeled")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="nfc-function" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="prov-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="prov status of this vnfc")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by APP-C")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipaddress-v4-oam-vip" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Oam V4 vip address of this vnfc")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="in-maint" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="is-closed-loop-disabled" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="group-notation" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Group notation of VNFC")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-invariant-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.",visibility="deployment",requires="model-version-id")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-version-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.",visibility="deployment",requires="model-invariant-id")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vnfcs">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="virtual network components associated with a vserver from application controller.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:vnfc" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="subnet">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(indexedProps="subnet-id,subnet-name",nameProps="subnet-name",uniqueProps="subnet-id",dependentOn="l3-network",container="subnets")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="subnet-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Subnet ID, should be UUID.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="subnet-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name associated with the subnet.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="neutron-subnet-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron id of this subnet")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="gateway-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="gateway ip address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="network-start-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="network start address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="cidr-mask" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="cidr mask")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ip-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ip version")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="dhcp-enabled" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="dhcp enabled")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="dhcp-start" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the start address reserved for use by dhcp")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="dhcp-end" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the last address reserved for use by dhcp")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="subnet-role" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="role of the subnet, referenced when assigning IPs")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="subnets">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:subnet" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="ctag-assignment">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(indexedProps="vlan-id-inner",dependentOn="l3-network",container="ctag-assignments")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="vlan-id-inner" type="xs:unsignedInt">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="id.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="ctag-assignments">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:ctag-assignment" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="segmentation-assignment">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Openstack segmentation assignment.",indexedProps="segmentation-id",dependentOn="l3-network",container="segmentation-assignments")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="segmentation-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Concurrency value")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="segmentation-assignments">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of openstack segmentation assignments")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:segmentation-assignment" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="l3-network">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="network-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Network ID, should be uuid. Unique across A&amp;AI.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="network-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of the network, governed by some naming convention..")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="network-type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Type of the network - who defines these values?")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="network-role" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Role the network plans - who defines these values?")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="network-technology" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Network technology - who defines these values?")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="neutron-network-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron network id of this Interface")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="is-bound-to-vpn" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="Set to true if bound to VPN")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="service-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Unique identifier of service from ASDC.  Does not strictly map to ASDC services.  SOON TO BE DEPRECATED")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="network-role-instance" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="network role instance")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="mso-catalog-key" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="contrail-network-fqdn" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Contrail FQDN for the network")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-invariant-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-version-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="persona-model-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-customization-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="widget-model-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="widget-model-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="physical-network-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name associated with the physical network.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="is-provider-network" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a provider network.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="is-shared-network" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a shared network.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="is-external-network" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is an external network.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="selflink" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Path to the controller object.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="operational-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:subnets" minOccurs="0"/>
+        <xs:element ref="tns:ctag-assignments" minOccurs="0"/>
+        <xs:element ref="tns:segmentation-assignments" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Relates to tenant (or is it a child of tenant), complex, service, vpn-binding")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="l3-networks">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:l3-network" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="network-policy">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="network-policy-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="UUID representing unique key to this instance")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="network-policy-fqdn" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Contrail FQDN for the policy")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ID for the openStack Heat instance")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="network-policies">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:network-policy" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vf-module">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="vf-module-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of vf-module.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vf-module-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of vf-module")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="orchestration status of this vf-module, mastered by MSO")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="is-base-vf-module" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is base vf module")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-invariant-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-version-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="persona-model-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-customization-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="widget-model-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="widget-model-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="contrail-service-instance-fqdn" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the Contrail unique ID for a service-instance")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="module-index" type="xs:int" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="selflink" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Path to the controller object.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vf-modules">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of vf-modules, a deployment unit of VNFCs")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:vf-module" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="generic-vnf">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="vnf-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of VNF.  This is unique across the graph.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vnf-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of VNF.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vnf-name2" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Alternate name of VNF.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vnf-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="service-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Unique identifier of service, does not necessarily map to ASDC service models.  SOON TO BE DEPRECATED")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="regional-resource-zone" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="prov-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.",suggestibleOnSearch="true")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="operational-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational.  Valid values are in-service-path and out-of-service-path.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="license-key" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="OBSOLETE -  do not use")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="equipment-role" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Client should send valid enumerated value")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, used by MSO.",suggestibleOnSearch="true")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="mso-catalog-key" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="management-option" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="identifier of managed by ATT or customer")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipv4-oam-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipv4-loopback0-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="v4 Loopback0 address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="nm-lan-v6-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="v6 Loopback address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="management-v6-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="v6 management address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vcpu" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vcpu-units" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="units associated with vcpu, used for VNFs with no vservers/flavors, to be used only by uCPE")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vmemory" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vmemory-units" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="units associated with vmemory, used for VNFs with no vservers/flavors, to be used only by uCPE")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vdisk" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vdisk-units" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="units associated with vdisk, used for VNFs with no vservers/flavors, to be used only by uCPE")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="in-maint" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="is-closed-loop-disabled" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="summary-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="details regarding the generic-vnf operation, PLEASE DISCONTINUE USE OF THIS FIELD.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="encrypted-access-flag" type="xs:boolean" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="indicates whether generic-vnf access uses SSH")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="entitlement-assignment-group-uuid" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="UUID of the Entitlement group used for licensing VNFs, OBSOLETE -  See child relationships.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="entitlement-resource-uuid" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="UUID of the specific entitlement resource.  OBSOLETE -  See child relationships.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="license-assignment-group-uuid" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="UUID of the license assignment group.  OBSOLETE -  See child relationships.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="license-key-uuid" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="UUID of the actual license resource.  OBSOLETE -  See child relationships.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-invariant-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-version-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="persona-model-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-customization-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="widget-model-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="widget-model-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="as-number" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="as-number of the VNF")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="regional-resource-subzone" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="represents sub zone of the rr plane")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="nf-type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Generic description of the type of NF",suggestibleOnSearch="true")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="nf-function" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="English description of Network function that the specific VNF deployment is providing")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="nf-role" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="role in the network that this model will be providing",suggestibleOnSearch="true")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="nf-naming-code" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="string assigned to this model used for naming purposes")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="selflink" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Path to the controller object.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipv4-oam-gateway-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Gateway address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipv4-oam-gateway-address-prefix-length" type="xs:int" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Prefix length for oam-address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vlan-id-outer" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Temporary location for S-TAG to get to VCE")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="nm-profile-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Network Management profile of this VNF")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:l-interfaces" minOccurs="0"/>
+        <xs:element ref="tns:lag-interfaces" minOccurs="0"/>
+        <xs:element ref="tns:vf-modules" minOccurs="0"/>
+        <xs:element ref="tns:licenses" minOccurs="0"/>
+        <xs:element ref="tns:entitlements" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="generic-vnfs">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of VNFs")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:generic-vnf" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="lag-link">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="LAG links can connect lag-interfaces",indexedProps="link-name",container="lag-links",namespace="network")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="link-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Alphabetical concatenation of lag-interface names")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="lag-links">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of link aggregation connections")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:lag-link" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="newvce">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="vnf-id2" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of VNF, can't use same attribute name right now until we promote this new object")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vnf-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of VNF.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vnf-name2" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Alternate name of VNF.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vnf-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="prov-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="operational-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="license-key" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="OBSOLETE -  do not use")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipv4-oam-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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).")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="equipment-role" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Client should send valid enumerated value.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipv4-loopback0-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="v4 Loopback0 address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="mso-catalog-key" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:l-interfaces" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="newvces">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:newvce" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="pnf">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="pnf-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="unique name of Physical Network Function.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="pnf-name2" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="name of Physical Network Function.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="pnf-name2-source" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="source of name2")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="pnf-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="id of pnf")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="equip-type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Equipment type.  Source of truth should define valid values.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="equip-vendor" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Equipment vendor.  Source of truth should define valid values.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="equip-model" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Equipment model.  Source of truth should define valid values.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="management-option" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="identifier of managed by ATT or customer")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipaddress-v4-oam" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ipv4-oam-address with new naming convention for IP addresses")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="sw-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="sw-version is the version of SW for the hosted application on the PNF.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="in-maint" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="frame-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ID of the physical frame (relay rack) where pnf is installed.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="serial-number" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Serial number of the device")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipaddress-v4-loopback-0" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV4 Loopback 0 address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipaddress-v6-loopback-0" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV6 Loopback 0 address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipaddress-v4-aim" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV4 AIM address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipaddress-v6-aim" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV6 AIM address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipaddress-v6-oam" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV6 OAM address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="inv-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="CANOPI's inventory status.  Only set with values exactly as defined by CANOPI.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="prov-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV]")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="nf-role" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Nf Role is the role performed by this instance in the network.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:p-interfaces" minOccurs="0"/>
+        <xs:element ref="tns:lag-interfaces" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="pnfs">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of Physical Network Functions.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:pnf" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="physical-link">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="link-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="e.g., hostnameA_p-connection_nameA_hostnameZ+p_connection-nameZ")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="speed-value" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the numeric part of the speed")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="speed-units" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the units corresponding to the speed")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="circuit-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Circuit it")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="dual-mode" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Dual access mode (e.g., primary, secondary")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="management-option" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="To provide information on who manages this circuit. A&amp;AI or 3rd party transport provider")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="service-provider-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of the service Provider on this link.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="physical-links">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:physical-link" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vig-server">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="vig-address-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="indicates whether the VIG is for AVPN or INTERNET")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipaddress-v4-vig" type="xs:string" minOccurs="0" maxOccurs="unbounded">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="v4 IP of the vig server")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipaddress-v6-vig" type="xs:string" minOccurs="0" maxOccurs="unbounded">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="v6 IP of the vig server")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vig-servers">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:vig-server" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="ipsec-configuration">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="ipsec-configuration-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="UUID of this configuration")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="requested-vig-address-type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicate the type of VIG server like AVPN, INTERNET, BOTH")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="requested-encryption-strength" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Encryption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="requested-dmz-type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ATT can offer a shared DMZ or a DMZ specific to a customer")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="shared-dmz-network-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Network address of shared DMZ")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="requested-customer-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="If the DMZ is a custom DMZ, this field will indicate the customer information")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ike-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="can be 1 or 2")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ikev1-authentication" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Contains values like md5, sha1, sha256, sha384")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ikev1-encryption" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Encyption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ikev1-dh-group" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Diffie-Hellman group like DH-GROUP2, DH-GROUP5, DH-GROUP14")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ikev1-am-group-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Group name defined in VIG for clients using aggressive mode")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ikev1-am-password" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="pre-shared key for the above group name ")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ikev1-sa-lifetime" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Lifetime for IKEv1 SA")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipsec-authentication" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="md5, sha1, sha256, sha384")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipsec-encryption" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipsec-sa-lifetime" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Life time for IPSec SA")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipsec-pfs" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="enable PFS or not")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="xauth-userid" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="user ID for xAuth, sm-user,ucpeHostName,nmteHostName")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="xauth-user-password" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Encrypted using the Juniper $9$ algorithm")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="dpd-interval" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The time between DPD probe")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="dpd-frequency" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Maximum number of DPD before claiming the tunnel is down")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:vig-servers" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="ipsec-configurations">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:ipsec-configuration" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="route-table-reference">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="route-table-reference-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="route-table-reference-fqdn" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="FQDN entry in the route table.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Concurrency value")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="route-table-references">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of openstack route table references")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:route-table-reference" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="instance-group">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="instance-group-role" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="role of the instance group.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-invariant-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ASDC model id for this resource or service model.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-version-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ASDC model version uid for this resource model.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Instance Group ID, UUID assigned to this instance.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="description" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Descriptive text to help identify the usage of this instance-group")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Only valid value today is lower case ha for high availability")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="sub-type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Valid values for ha type are [geo-activeactive, geo-activestandby, local-activeactive, local-activestandby]")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Concurrency value")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="instance-groups">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of openstack route table references")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:instance-group" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="zone">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="zone-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Code assigned by AIC to the zone")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="zone-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="English name associated with the zone")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="design-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Design of zone [Medium/Large…]")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="zone-context" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Context of zone [production/test]")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Status of a zone.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Concurrency value")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="zones">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of zones")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:zone" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="network">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Namespace for network inventory resources.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:logical-links" minOccurs="0"/>
+        <xs:element ref="tns:site-pair-sets" minOccurs="0"/>
+        <xs:element ref="tns:vpn-bindings" minOccurs="0"/>
+        <xs:element ref="tns:vpls-pes" minOccurs="0"/>
+        <xs:element ref="tns:multicast-configurations" minOccurs="0"/>
+        <xs:element ref="tns:vces" minOccurs="0"/>
+        <xs:element ref="tns:vnfcs" minOccurs="0"/>
+        <xs:element ref="tns:l3-networks" minOccurs="0"/>
+        <xs:element ref="tns:network-policies" minOccurs="0"/>
+        <xs:element ref="tns:generic-vnfs" minOccurs="0"/>
+        <xs:element ref="tns:lag-links" minOccurs="0"/>
+        <xs:element ref="tns:newvces" minOccurs="0"/>
+        <xs:element ref="tns:pnfs" minOccurs="0"/>
+        <xs:element ref="tns:physical-links" minOccurs="0"/>
+        <xs:element ref="tns:ipsec-configurations" minOccurs="0"/>
+        <xs:element ref="tns:route-table-references" minOccurs="0"/>
+        <xs:element ref="tns:instance-groups" minOccurs="0"/>
+        <xs:element ref="tns:zones" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="reserved-prop-names">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="last-mod-source-of-truth" type="xs:string" minOccurs="0"/>
+        <xs:element name="aai-node-type" type="xs:string" minOccurs="0"/>
+        <xs:element name="aai-created-ts" type="xs:unsignedInt" minOccurs="0"/>
+        <xs:element name="aai-unique-key" type="xs:string" minOccurs="0"/>
+        <xs:element name="aai-last-mod-ts" type="xs:unsignedInt" minOccurs="0"/>
+        <xs:element name="source-of-truth" type="xs:string" minOccurs="0"/>
+        <xs:element name="aai-uri" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="edge-prop-names">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="edgeLabel" type="xs:string" minOccurs="0"/>
+        <xs:element name="direction" type="xs:string" minOccurs="0"/>
+        <xs:element name="multiplicityRule" type="xs:string" minOccurs="0"/>
+        <xs:element name="is-parent" type="xs:string" minOccurs="0"/>
+        <xs:element name="uses-resource" type="xs:string" minOccurs="0"/>
+        <xs:element name="has-del-target" type="xs:string" minOccurs="0"/>
+        <xs:element name="SVC-INFRA" type="xs:string" minOccurs="0"/>
+        <xs:element name="prevent-delete" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="aai-internal">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:reserved-prop-names" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element ref="tns:edge-prop-names" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="inventory">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:search" minOccurs="0"/>
+        <xs:element ref="tns:actions" minOccurs="0"/>
+        <xs:element ref="tns:cloud-infrastructure" minOccurs="0"/>
+        <xs:element ref="tns:license-management" minOccurs="0"/>
+        <xs:element ref="tns:business" minOccurs="0"/>
+        <xs:element ref="tns:service-design-and-creation" minOccurs="0"/>
+        <xs:element ref="tns:network" minOccurs="0"/>
+        <xs:element ref="tns:aai-internal" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="notification-event-header">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="id" type="xs:string" minOccurs="0"/>
+        <xs:element name="timestamp" type="xs:string" minOccurs="0"/>
+        <xs:element name="source-name" type="xs:string" minOccurs="0"/>
+        <xs:element name="domain" type="xs:string" minOccurs="0"/>
+        <xs:element name="sequence-number" type="xs:string" minOccurs="0"/>
+        <xs:element name="severity" type="xs:string" minOccurs="0"/>
+        <xs:element name="event-type" type="xs:string" minOccurs="0"/>
+        <xs:element name="version" type="xs:string" minOccurs="0"/>
+        <xs:element name="action" type="xs:string" minOccurs="0"/>
+        <xs:element name="entity-type" type="xs:string" minOccurs="0"/>
+        <xs:element name="top-entity-type" type="xs:string" minOccurs="0"/>
+        <xs:element name="entity-link" type="xs:string" minOccurs="0"/>
+        <xs:element name="status" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="notification-event">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="cambria.partition" type="xs:string" minOccurs="0"/>
+        <xs:element ref="tns:notification-event-header" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="overloaded-model">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Allows for legacy POST of old-style and new-style models")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="model-invariant-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-name-version-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of the model, which can change from version to version.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Invariant unique ID which does not change from version to version")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-version" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Version")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-description" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Description")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:model-vers" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="query-parameters">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="QueryParameters for performing a named-query or model query")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:named-query" minOccurs="0"/>
+        <xs:element ref="tns:overloaded-model" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="instance-filter">
+    <xs:complexType>
+      <xs:sequence/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="instance-filters">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="InstanceFilters for performing a named-query or model query")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:instance-filter" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="secondary-filt">
+    <xs:complexType>
+      <xs:sequence/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="secondary-filts">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="SecondaryFilts for performing a named-query or model query")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:secondary-filt" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="model-and-named-query-search">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="ModelAndNamedQuerySearch holds query-parameters and instance-properties for performing a named-query or model query")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:query-parameters" minOccurs="0"/>
+        <xs:element ref="tns:instance-filters" minOccurs="0"/>
+        <xs:element ref="tns:secondary-filts" minOccurs="0"/>
+        <xs:element name="top-node-type" type="xs:string" minOccurs="0"/>
+        <xs:element name="secondary-filter-cut-point" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="properties">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Property holder for query properties or instance properties")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="property-name" type="xs:string" minOccurs="0"/>
+        <xs:element name="property-value" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="extra-property">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="property-name" type="xs:string" minOccurs="0"/>
+        <xs:element name="property-value" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="extra-properties">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Extra properties for inventory item for response list")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:extra-property" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="inventory-response-item">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Inventory item for response list",container="inventory-response-items")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="model-name" type="xs:string" minOccurs="0"/>
+        <xs:element ref="tns:extra-properties" minOccurs="0"/>
+        <xs:element ref="tns:inventory-response-items" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="inventory-response-items">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Container for inventory items in response list",container="response-list")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:inventory-response-item" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="response-list">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Response container for the results of a named-query or model query")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:inventory-response-items" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vnf">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Abstract vnf class",indexedProps="vnf-id",uniqueProps="vnf-id",inheritors="vce,generic-vnf",isAbstract="true")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="vnf-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of VNF.  This is unique across the graph.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+</xs:schema>
\ No newline at end of file
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/resources/aai_schema_v9.xsd b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/resources/aai_schema_v9.xsd
new file mode 100644
index 0000000..c73c583
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-api/src/main/resources/aai_schema_v9.xsd
@@ -0,0 +1,6303 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<xs:schema elementFormDefault="qualified" version="1.0" targetNamespace="http://org.openecomp.aai.inventory/v9" xmlns:tns="http://org.openecomp.aai.inventory/v9" xmlns:xs="http://www.w3.org/2001/XMLSchema"
+xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
+    jaxb:version="2.1" 
+    xmlns:annox="http://annox.dev.java.net" 
+    jaxb:extensionBindingPrefixes="annox">
+
+  <xs:element name="inventory-item-data">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="property-name" type="xs:string" minOccurs="0"/>
+        <xs:element name="property-value" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="inventory-item">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="inventory-item-type" type="xs:string" minOccurs="0"/>
+        <xs:element name="inventory-item-link" type="xs:string" minOccurs="0"/>
+        <xs:element ref="tns:inventory-item-data" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element ref="tns:tagged-inventory-item-list" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="tagged-inventory-item-list">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:inventory-item" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="edge-tag-query-result">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:tagged-inventory-item-list" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="start-node-filter">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="property-name" type="xs:string" minOccurs="0"/>
+        <xs:element name="property-value" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="include-node-filter">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="include-node-type" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="secondary-filter">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="property-name" type="xs:string" minOccurs="0"/>
+        <xs:element name="filter-type" type="xs:string" minOccurs="0"/>
+        <xs:element name="property-value" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="edge-tag-query-request">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="edge-tag" type="xs:string" minOccurs="0"/>
+        <xs:element name="result-detail" type="xs:string" minOccurs="0"/>
+        <xs:element name="start-node-type" type="xs:string" minOccurs="0"/>
+        <xs:element ref="tns:start-node-filter" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element ref="tns:include-node-filter" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element ref="tns:secondary-filter" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="result-data">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="resource-type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The specific type of node in the A&amp;AI graph")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-link" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The URL to the specific resource")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="search-results">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:result-data" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="relationship-data">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="relationship-key" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="A keyword provided by A&amp;AI to indicate an attribute.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="relationship-value" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Value of the attribute.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="related-to-property">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="property-key" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Key part of a key/value pair")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="property-value" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Value part of a key/value pair")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="relationship">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="related-to" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="A keyword provided by A&amp;AI to indicate type of node.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="related-link" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to the object in A&amp;AI.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-data" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element ref="tns:related-to-property" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="relationship-list">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:relationship" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="oam-network">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="network-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="UUID of the network. Unique across a cloud-region")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="network-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of the network.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="cvlan-tag" type="xs:unsignedInt">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="cvlan-id")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipv4-oam-gateway-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipv4-oam-gateway-address-prefix-length" type="xs:int" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for VNF firewall rule so customer cannot send customer traffic over this oam network")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="oam-networks">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of OAM networks, to be deprecated shortly.  Do not use for new purposes. ")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:oam-network" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="dvs-switch">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Digital virtual switch metadata, used by SDN-C to configure VCEs.  A&amp;AI needs to receive this data from the PO deployment team and administer it using the provisioningTool.sh into A&amp;AI. ",indexedProps="vcenter-url,switch-name",dependentOn="cloud-region",container="dvs-switches")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="switch-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="DVS switch name")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vcenter-url" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL used to reach the vcenter")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="dvs-switches">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of digital virtual switch metadata used for vmWare VCEs and VPEs.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:dvs-switch" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="availability-zone">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Availability zone, a collection of compute hosts/pservers",indexedProps="availability-zone-name",dependentOn="cloud-region",container="availability-zones")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="availability-zone-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Name of the availability zone.  Unique across a cloud region")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="hypervisor-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Type of hypervisor.  Source of truth should define valid values.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="operational-state" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="State that indicates whether the availability zone should be used, etc.  Source of truth should define valid values.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="az-and-dvs-switches">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:dvs-switches" minOccurs="0"/>
+        <xs:element ref="tns:availability-zone" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="sdn-zone-response">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:oam-networks" minOccurs="0"/>
+        <xs:element ref="tns:az-and-dvs-switches" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="search">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:edge-tag-query-result" minOccurs="0"/>
+        <xs:element ref="tns:edge-tag-query-request" minOccurs="0"/>
+        <xs:element ref="tns:search-results" minOccurs="0"/>
+        <xs:element ref="tns:sdn-zone-response" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="update-node-key">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="key-name" type="xs:string" minOccurs="0"/>
+        <xs:element name="key-value" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="action-data">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="property-name" type="xs:string" minOccurs="0"/>
+        <xs:element name="property-value" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="action">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="action-type" type="xs:string" minOccurs="0"/>
+        <xs:element ref="tns:action-data" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="update">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Serves a PATCH like function.  Does not enforce concurrency control.  Clear each usage with AAI team.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="update-node-type" type="xs:string"/>
+        <xs:element ref="tns:update-node-key" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element name="update-node-uri" type="xs:string" minOccurs="0"/>
+        <xs:element ref="tns:action" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="key-data">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="key-name" type="xs:string" minOccurs="0"/>
+        <xs:element name="key-value" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="notify">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="event-id" type="xs:string"/>
+        <xs:element name="node-type" type="xs:string" minOccurs="0"/>
+        <xs:element name="event-trigger" type="xs:string" minOccurs="0"/>
+        <xs:element ref="tns:key-data" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element name="selflink" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="actions">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="APIs that are more action related than REST (e.g., notify, update).")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:update" minOccurs="0"/>
+        <xs:element ref="tns:notify" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="ctag-pool">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="target-pe" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="The Target provider edge router")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="availability-zone-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Name of the availability zone")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ctag-pool-purpose" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Describes what the intended purpose of this pool is.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ctag-values" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Comma separated list of ctags")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="ctag-pools">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:ctag-pool" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="complex">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="physical-location-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique identifier for physical location, e.g., CLLI")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="data-center-code" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Data center code which can be an alternate way to identify a complex")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="complex-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Gamma complex name for LCP instance.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="identity-url" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL of the keystone identity service")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="physical-location-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Type, e.g., central office, data center.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="street1" type="xs:string"/>
+        <xs:element name="street2" type="xs:string" minOccurs="0"/>
+        <xs:element name="city" type="xs:string"/>
+        <xs:element name="state" type="xs:string" minOccurs="0"/>
+        <xs:element name="postal-code" type="xs:string"/>
+        <xs:element name="country" type="xs:string"/>
+        <xs:element name="region" type="xs:string"/>
+        <xs:element name="latitude" type="xs:string" minOccurs="0"/>
+        <xs:element name="longitude" type="xs:string" minOccurs="0"/>
+        <xs:element name="elevation" type="xs:string" minOccurs="0"/>
+        <xs:element name="lata" type="xs:string" minOccurs="0"/>
+        <xs:element ref="tns:ctag-pools" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="complexes">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of physical locations that can house cloud-regions.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:complex" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="volume-group">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Persistent block-level storage.",indexedProps="volume-group-name,vnf-type,heat-stack-id,volume-group-id",searchable="volume-group-name",dependentOn="cloud-region",container="volume-groups")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="volume-group-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of volume-group.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="volume-group-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of the volume group.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this volume-group")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vnf-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource.  This field has been overloaded and clients should expect changes                  to occur in the future to this field as ASDC matures.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this volume-group")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="persona-model-customization-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="volume-groups">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of persistent block-level storage.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:volume-group" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="volume">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Ephemeral Block storage volume.",indexedProps="volume-id",dependentOn="vserver",container="volumes")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="volume-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of block storage volume relative to the vserver.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="volume-selflink" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="volumes">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of ephemeral Block storage volumes.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:volume" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="l3-interface-ipv4-address-list">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="l3-interface-ipv4-address" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="IP address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="l3-interface-ipv4-prefix-length" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Prefix length, 32 for single address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vlan-id-inner" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Inner VLAN tag")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vlan-id-outer" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Outer VLAN tag")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="is-floating" type="xs:boolean" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicator of fixed or floating address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="neutron-network-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="neutron-subnet-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="l3-interface-ipv6-address-list">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="l3-interface-ipv6-address" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="IP address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="l3-interface-ipv6-prefix-length" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Prefix length, 128 for single address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vlan-id-inner" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Inner VLAN tag")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vlan-id-outer" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Outer VLAN tag")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="is-floating" type="xs:boolean" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicator of fixed or floating address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="neutron-network-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="neutron-subnet-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vlan">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Definition of vlan",indexedProps="vlan-interface,vlan-id-inner,vpn-id",uniqueProps="vpn-id",dependentOn="l-interface",container="vlans")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="vlan-interface" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="String that identifies the interface")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vlan-id-inner" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Inner VLAN tag")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vlan-id-outer" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Outer VLAN tag")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="speed-value" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the numeric part of the speed")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="speed-units" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the units corresponding to the speed")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vlan-description" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used to describe (the service associated with) the vlan")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="backdoor-connection" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Whether customer is going to use this VLAN for backdoor connection to another customer premise device.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vpn-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This indicates the customers VPN ID associated with this vlan")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:l3-interface-ipv4-address-list" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element ref="tns:l3-interface-ipv6-address-list" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vlans">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:vlan" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="sriov-vf">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="pci-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="PCI ID used to identify the sriov-vf")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vf-vlan-filter" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This metadata provides option to specify list of VLAN filters applied on VF to pass the traffic to VM.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vf-mac-filter" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vf-vlan-strip" type="xs:boolean" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vf-vlan-anti-spoof-check" type="xs:boolean" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vf-mac-anti-spoof-check" type="xs:boolean" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vf-mirrors" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vf-broadcast-allow" type="xs:boolean" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vf-unknown-multicast-allow" type="xs:boolean" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vf-unknown-unicast-allow" type="xs:boolean" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vf-insert-stag" type="xs:boolean" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This option, if set to true, instructs to insert outer tag after traffic comes out of VM.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vf-link-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This option is used to set the link status.  Valid values as of 1607 are on, off, and auto.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="neutron-network-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron network id of the interface")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="sriov-vfs">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of SR-IOV Virtual Functions.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:sriov-vf" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="l-interface">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Logical interfaces, e.g., a vnic.",indexedProps="macaddr,interface-id,interface-name,network-name",dependentOn="generic-vnf,newvce,vpe,p-interface,vserver,lag-interface",container="l-interfaces")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="interface-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Name given to the interface")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="interface-role" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="E.g., CUSTOMER, UPLINK, etc.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="v6-wan-link-ip" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Questionably placed - v6 ip addr of this interface (is in vr-lan-interface from Mary B.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="selflink" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="interface-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ID of interface")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="macaddr" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="MAC address for the interface")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="network-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of the network")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="management-option" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Whether A&amp;AI should be managing this interface of not. Could have value like CUSTOMER")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="interface-description" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Human friendly text regarding this interface.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:vlans" minOccurs="0"/>
+        <xs:element ref="tns:sriov-vfs" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:l3-interface-ipv4-address-list" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element ref="tns:l3-interface-ipv6-address-list" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="l-interfaces">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of logical interfaces.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:l-interface" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vserver">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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-name,vserver-id,vserver-name2",dependentOn="tenant",container="vservers")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="vserver-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique identifier for this vserver relative to its tenant")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vserver-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of vserver")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vserver-name2" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Alternative name of vserver")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="prov-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vserver-selflink" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="in-maint" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="is-closed-loop-disabled" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="Used to indicate whether closed loop function is enabled on this node")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:volumes" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:l-interfaces" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vservers">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of virtual Servers, aka virtual machines or VMs.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:vserver" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="tenant">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Openstack tenant",nameProps="tenant-name",indexedProps="tenant-name,tenant-id",searchable="tenant-name,tenant-id",dependentOn="cloud-region",container="tenants")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="tenant-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id relative to the cloud-region.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="tenant-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Readable name of tenant")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:vservers" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="tenants">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of openstack tenants.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:tenant" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="flavor">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Openstack flavor.",nameProps="flavor-name",indexedProps="flavor-name,flavor-id",dependentOn="cloud-region",container="flavors")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="flavor-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Flavor id, expected to be unique across cloud-region.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="flavor-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Flavor name")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="flavor-vcpus" type="xs:int" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Number of CPUs")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="flavor-ram" type="xs:int" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Amount of memory")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="flavor-disk" type="xs:int" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Disk space")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="flavor-ephemeral" type="xs:int" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Amount of ephemeral disk space")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="flavor-swap" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="amount of swap space allocation")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="flavor-is-public" type="xs:boolean" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="whether flavor is available to all users or private to the tenant it was created in.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="flavor-selflink" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="flavor-disabled" type="xs:boolean" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Boolean as to whether this flavor is no longer enabled")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="flavors">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of openstack flavors.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:flavor" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="group-assignment">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="group-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Group id, expected to be unique across cloud-region.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="group-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Group type - the type of group this instance refers to")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="group-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Group name - name assigned to the group")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="group-description" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Group description - description of the group")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="group-assignments">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of openstack group assignments")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:group-assignment" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="snapshot">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="snapshot-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Snapshot id, this is the key UUID assoc associated in glance with the snapshots.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="snapshot-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Snapshot name")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="snapshot-architecture" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Operating system architecture")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="snapshot-os-distro" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="snapshot-os-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The operating system version as specified by the distributor.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="application" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The application that the image instantiates.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="application-vendor" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The vendor of the application.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="application-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The version of the application.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="snapshot-selflink" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="prev-snapshot-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This field contains the UUID of the previous snapshot (if any).")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="snapshots">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of openstack snapshots")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:snapshot" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="metadatum">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Key/value pairs",indexedProps="metaname",dependentOn="tenant,image,service-instance,connector,model",container="metadata")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="metaname" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true)</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="metaval" type="xs:string"/>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="metadata">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of metadatum (key/value pairs)")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:metadatum" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="image">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Openstack image.",nameProps="image-name",indexedProps="application,image-name,application-vendor,image-id,application-version",dependentOn="cloud-region",container="images")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="image-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Image id, expected to be unique across cloud region")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="image-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Image name")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="image-architecture" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Operating system architecture.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="image-os-distro" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The common name of the operating system distribution in lowercase")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="image-os-version" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The operating system version as specified by the distributor.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="application" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The application that the image instantiates.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="application-vendor" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The vendor of the application.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="application-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The version of the application.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="image-selflink" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:metadata" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="images">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collectio of Openstack images.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:image" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="availability-zones">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of availability zones")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:availability-zone" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="cloud-region">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="cloud-region designates an installation of a cloud cluster or region or instantiation. In AT&amp;Ts openecomp 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 openecomp-openecomp for AT&amp;T's openecomp.",indexedProps="cloud-owner,cloud-region-id,cloud-type,owner-defined-type",nameProps="owner-defined-type",container="cloud-regions",namespace="cloud-infrastructure")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="cloud-owner" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Identifies the vendor and cloud name, e.g., openecomp-openecomp. First part of composite key should be formatted as vendor-cloudname")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="cloud-region-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Identifier used by the vendor for the region. Second part of composite key")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="cloud-type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Type of the cloud (e.g., openstack)")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="owner-defined-type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Cloud-owner defined type indicator (e.g., DCP, LCP)")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="cloud-region-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Software version employed at the site")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="identity-url" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL of the keystone identity service")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="cloud-zone" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Zone where the cloud is homed")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="complex-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="complex name for cloud-region instance")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:volume-groups" minOccurs="0"/>
+        <xs:element ref="tns:tenants" minOccurs="0"/>
+        <xs:element ref="tns:flavors" minOccurs="0"/>
+        <xs:element ref="tns:group-assignments" minOccurs="0"/>
+        <xs:element ref="tns:snapshots" minOccurs="0"/>
+        <xs:element ref="tns:images" minOccurs="0"/>
+        <xs:element ref="tns:dvs-switches" minOccurs="0"/>
+        <xs:element ref="tns:oam-networks" minOccurs="0"/>
+        <xs:element ref="tns:availability-zones" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="cloud-regions">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(maximumDepth="0")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:cloud-region" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="network-profile">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Network profile populated by SDN-GP for SNMP",indexedProps="nm-profile-name",container="network-profiles",namespace="cloud-infrastructure")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="nm-profile-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique name of network profile.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="community-string" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Encrypted SNMP community string")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="network-profiles">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of network profiles")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:network-profile" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="p-interface">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="interface-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Name that identifies the physical interface")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="speed-value" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the numeric part of the speed")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="speed-units" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the units corresponding to the speed")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="port-description" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Nature of the services and connectivity on this port.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="equipment-identifier" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="CLEI or other specification for p-interface hardware.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="interface-role" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Role specification for p-interface hardware.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="interface-type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicates the physical properties of the interface.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="prov-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:l-interfaces" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="p-interfaces">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of physical interfaces.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:p-interface" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="lag-interface">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Link aggregate interface",indexedProps="interface-name,interface-id,interface-role",dependentOn="generic-vnf,pserver,vpe,vpls-pe,pnf",container="lag-interfaces")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="interface-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Name that identifies the link aggregate interface")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="speed-value" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the numeric part of the speed")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="speed-units" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the units corresponding to the speed")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="interface-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ID of interface")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="interface-role" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in OPENECOMP Yang models.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="prov-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:l-interfaces" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="lag-interfaces">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of link aggregate interfaces.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:lag-interface" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="pserver">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="hostname" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Value from executing hostname on the compute node.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ptnii-equip-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="PTNII name")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="number-of-cpus" type="xs:int" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Number of cpus")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="disk-in-gigabytes" type="xs:int" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Disk size, in GBs")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ram-in-megabytes" type="xs:int" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="RAM size, in MBs")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="equip-type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Equipment type.  Source of truth should define valid values.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="equip-vendor" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Equipment vendor.  Source of truth should define valid values.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="equip-model" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Equipment model.  Source of truth should define valid values.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="fqdn" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Fully-qualified domain name")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="pserver-selflink" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipv4-oam-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used to configure device, also used for troubleshooting and is IP used for traps generated by device.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="serial-number" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Serial number, may be queried")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipaddress-v4-loopback-0" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV4 Loopback 0 address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipaddress-v6-loopback-0" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV6 Loopback 0 address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipaddress-v4-aim" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV4 AIM address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipaddress-v6-aim" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV6 AIM address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipaddress-v6-oam" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV6 OAM address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="inv-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="CANOPI's inventory status.  Only set with values exactly as defined by CANOPI.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="pserver-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ID of Pserver")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="internet-topology" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="internet topology of Pserver")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="in-maint" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="pserver-name2" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="alternative pserver name")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="purpose" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="purpose of pserver")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:p-interfaces" minOccurs="0"/>
+        <xs:element ref="tns:lag-interfaces" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="pservers">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of compute hosts.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:pserver" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="virtual-data-center">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="vdc-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of the vdc")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vdc-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of the virtual data center")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="virtual-data-centers">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Virtual organization of cloud infrastructure elements in a data center context")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:virtual-data-center" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="cloud-infrastructure">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Namespace for cloud infrastructure.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:complexes" minOccurs="0"/>
+        <xs:element ref="tns:cloud-regions" minOccurs="0"/>
+        <xs:element ref="tns:network-profiles" minOccurs="0"/>
+        <xs:element ref="tns:pservers" minOccurs="0"/>
+        <xs:element ref="tns:virtual-data-centers" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="license-key-resource">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(nameProps="name",indexedProps="assignment-group-uuid,openecomp-uuid,name",uniqueProps="openecomp-uuid",container="license-key-resources",namespace="license-management")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="att-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true)</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="assignment-type" type="xs:string" minOccurs="0"/>
+        <xs:element name="assignment-status" type="xs:string" minOccurs="0"/>
+        <xs:element name="assignment-group-uuid" type="xs:string"/>
+        <xs:element name="assignment-date" type="xs:string" minOccurs="0"/>
+        <xs:element name="name" type="xs:string" minOccurs="0"/>
+        <xs:element name="model-uuid" type="xs:string" minOccurs="0"/>
+        <xs:element name="model-version" type="xs:string" minOccurs="0"/>
+        <xs:element name="license-key" type="xs:string" minOccurs="0"/>
+        <xs:element name="license-key-file-url" type="xs:string" minOccurs="0"/>
+        <xs:element name="supplier-release-list" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="license-key-resources">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:license-key-resource" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="license-management">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:license-key-resources" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="connector">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="resource-instance-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of resource instance.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="persona-model-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="persona-model-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="widget-model-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="widget-model-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:metadata" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="connectors">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of resource instances used to connect a variety of disparate inventory widgets")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:connector" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="tunnel-xconnect">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="bandwidth-up-wan1" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The WAN uplink bandwidth for WAN1")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="bandwidth-down-wan1" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The WAN downlink bandwidth for WAN1")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="bandwidth-up-wan2" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The WAN uplink bandwidth for WAN2")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="bandwidth-down-wan2" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The WAN downlink bandwidth for WAN2")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Concurrency value")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="tunnel-xconnects">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="This object is used to store the specific tunnel cross connect aspects of an allotted resource")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:tunnel-xconnect" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="allotted-resource">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Allotted Resource id UUID assigned to this instance.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="description" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The descriptive information assigned to this allotted resource instance")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="selflink" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Link back to more information in the controller")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="persona-model-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="persona-model-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Concurrency value")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:tunnel-xconnects" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="allotted-resources">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="This object is used to store slices of services being offered")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:allotted-resource" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="service-instance">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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",nameProps="service-instance-name",searchable="service-instance-id,service-instance-name",uniqueProps="service-instance-id",dependentOn="service-subscription",container="service-instances")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="service-instance-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Uniquely identifies this instance of a service")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="service-instance-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This field will store a name assigned to the service-instance.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="persona-model-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="persona-model-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="widget-model-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="widget-model-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="bandwidth-total" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicates the total bandwidth to be used for this service.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="bandwidth-up-wan1" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="indicates the upstream bandwidth this service will use on the WAN1 port of the physical device.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="bandwidth-down-wan1" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="indicates the downstream bandwidth this service will use on the WAN1 port of the physical device.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="bandwidth-up-wan2" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="indicates the upstream bandwidth this service will use on the WAN2 port of the physical device.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="bandwidth-down-wan2" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="indicates the downstream bandwidth this service will use on the WAN2 port of the physical device.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vhn-portal-url" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL customers will use to access the vHN Portal.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="operational-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Operational status of the service-instance.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="service-instance-location-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="An identifier that customers assign to the location where this service is being used.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:metadata" minOccurs="0"/>
+        <xs:element ref="tns:allotted-resources" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="service-instances">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of service instances")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:service-instance" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="service-subscription">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Object that group service instances.",indexedProps="service-type",dependentOn="customer",container="service-subscriptions")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="service-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Value defined by orchestration to identify this service across OPENECOMP.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="temp-ub-sub-account-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="This property will be deleted from A&amp;AI in the near future. Only stop gap solution.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:service-instances" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="service-subscriptions">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of objects that group service instances.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:service-subscription" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="customer">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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="subscriber-name,global-customer-id",uniqueProps="global-customer-id,subscriber-name",alternateKeys1="subscriber-name",container="customers",namespace="business")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="global-customer-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Global customer id used across OPENECOMP to uniquely identify customer.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="subscriber-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Subscriber name, an alternate way to retrieve a customer.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="subscriber-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Subscriber type, a way to provide VID with only the INFRA customers.",defaultValue="CUST")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:service-subscriptions" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="customers">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of customer identifiers to provide linkage back to BSS information.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:customer" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="business">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Namespace for business related constructs")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:connectors" minOccurs="0"/>
+        <xs:element ref="tns:customers" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vnf-image">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Image object that pertain to a VNF that doesn't have associated vservers.  This is a kludge.",indexedProps="application,openecomp-uuid,application-vendor,application-version",uniqueProps="openecomp-uuid",container="vnf-images",namespace="service-design-and-creation")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="att-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of this asset")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="application" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The application that the image instantiates.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="application-vendor" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The vendor of the application.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="application-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The version of the application.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="selflink" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vnf-images">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of image objects that pertain to a VNF that doesn't have associated vservers.  This is a kludge.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:vnf-image" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="service">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Stand-in for service model definitions.  Likely to be deprecated in favor of models from ASDC.",indexedProps="service-description,service-id",container="services",namespace="service-design-and-creation")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="service-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="service-description" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Description of the service")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="service-selflink" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="URL to endpoint where AAI can get more details")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="service-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="service version")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="services">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of service model definitions.  Likely to be deprecated in favor of models from ASDC.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:service" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="service-capability">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="service-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="This gets defined by others to provide a unique ID for the service, we accept what is sent.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vnf-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="String capturing type of vnf, that was intended to identify the ASDC resource.  This field has been overloaded and clients should expect changes                  to occur in the future to this field as ASDC matures.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="service-capabilities">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of service capabilities.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:service-capability" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="element-choice-set">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="element-choice-set-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="element-choice-set-name" type="xs:string"/>
+        <xs:element name="cardinality" type="xs:string" minOccurs="0"/>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0"/>
+        <xs:element ref="tns:model-elements" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="element-choice-sets">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:element-choice-set" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="constrained-element-set">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="constrained-element-set-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="constraint-type" type="xs:string"/>
+        <xs:element name="check-type" type="xs:string"/>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0"/>
+        <xs:element ref="tns:element-choice-sets" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="constrained-element-sets">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:constrained-element-set" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="model-constraint">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="model-constraint-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="constrained-element-set-uuid-to-replace" type="xs:string"/>
+        <xs:element ref="tns:constrained-element-sets" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="model-constraints">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:model-constraint" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="model-element">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="model-element-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="new-data-del-flag" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicates whether this element was created as part of instantiation from this model")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="cardinality" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="How many of this type of element are required/allowed")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="linkage-points" minOccurs="0">
+          <xs:complexType>
+            <xs:annotation>
+              <xs:appinfo>
+                <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+              </xs:appinfo>
+            </xs:annotation>
+            <xs:sequence>
+              <xs:element name="linkage-point" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+            </xs:sequence>
+          </xs:complexType>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:model-elements" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Defines how other models combine to make up a higher-level model")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:model-constraints" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Describes new constraints on this model element that are not part of that model's definition")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="model-elements">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:model-element" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="model-ver">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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",namespace="service-design-and-creation")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="model-version-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to one version of a model in ASDC")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of the model, which can change from version to version.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-version" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Version")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-description" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Description")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:model-elements" minOccurs="0"/>
+        <xs:element ref="tns:metadata" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="model-vers">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:model-ver" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="model">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="model-invariant-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique identifier corresponding to the main definition of a model in ASDC")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="model-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Type of the model, e.g., service, resource, widget, etc.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:model-vers" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="models">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of subgraph definitions provided by ASDC to describe the inventory assets and their connections related to ASDC models")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:model" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="related-lookup">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="TBD",uniqueProps="related-lookup-uuid",indexedProps="related-lookup-uuid",allowDirectRead="true",allowDirectWrite="false",container="related-lookups")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="related-lookup-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="source-node-type" type="xs:string"/>
+        <xs:element name="source-node-property" type="xs:string"/>
+        <xs:element name="target-node-type" type="xs:string"/>
+        <xs:element name="target-node-property" type="xs:string"/>
+        <xs:element name="property-collect-list" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="related-lookups">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:related-lookup" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="property-constraint">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="TBD",uniqueProps="property-constraint-uuid",indexedProps="property-constraint-uuid",allowDirectRead="true",allowDirectWrite="false",container="property-constraints")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="property-constraint-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="constraint-type" type="xs:string"/>
+        <xs:element name="property-name" type="xs:string"/>
+        <xs:element name="property-value" type="xs:string"/>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="property-constraints">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:property-constraint" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="named-query-element">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="TBD",uniqueProps="named-query-element-uuid",indexedProps="named-query-element-uuid",allowDirectRead="true",allowDirectWrite="false",container="named-query-elements")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="named-query-element-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,autoGenerateUuid="true")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="property-collect-list" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0"/>
+        <xs:element name="property-limit-desc" type="xs:string" minOccurs="0"/>
+        <xs:element name="do-not-output" type="xs:string" minOccurs="0"/>
+        <xs:element ref="tns:named-query-elements" minOccurs="0"/>
+        <xs:element ref="tns:related-lookups" minOccurs="0"/>
+        <xs:element ref="tns:property-constraints" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="named-query-elements">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:named-query-element" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="named-query">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="named-query-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true)</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="named-query-name" type="xs:string"/>
+        <xs:element name="named-query-version" type="xs:string"/>
+        <xs:element name="required-input-params" minOccurs="0">
+          <xs:complexType>
+            <xs:annotation>
+              <xs:appinfo>
+                <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+              </xs:appinfo>
+            </xs:annotation>
+            <xs:sequence>
+              <xs:element name="required-input-param" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+            </xs:sequence>
+          </xs:complexType>
+        </xs:element>
+        <xs:element name="description" type="xs:string" minOccurs="0"/>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0"/>
+        <xs:element ref="tns:named-query-elements" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="named-queries">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:named-query" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="service-design-and-creation">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Namespace for objects managed by ASDC")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:vnf-images" minOccurs="0"/>
+        <xs:element ref="tns:services" minOccurs="0"/>
+        <xs:element ref="tns:service-capabilities" minOccurs="0"/>
+        <xs:element ref="tns:models" minOccurs="0"/>
+        <xs:element ref="tns:named-queries" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="logical-link">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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",nameProps="prov-status,circuit-id",container="logical-links",namespace="network")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="link-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="e.g., evc-name, or vnf-nameA_interface-nameA_vnf-nameZ_interface-nameZ")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="link-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Type of logical link, e.g., evc")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="speed-value" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the numeric part of the speed")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="speed-units" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the units corresponding to the speed")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ip-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="v4, v6, or ds for dual stack (should be openecomp-ip-version)")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="routing-protocol" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="For example, static or BGP")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="persona-model-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="persona-model-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="widget-model-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="widget-model-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="operational-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indication of operational status of the logical link.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="prov-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="link-role" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indication of the network use of the logical link.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="link-name2" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Alias or alternate name (CLCI or D1 name).")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="link-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="UUID of the logical-link, SDNC generates this.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="circuit-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Circuit id")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="purpose" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Reason for this entity, role it is playing")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="logical-links">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of logical connections")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:logical-link" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="class-of-service">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(indexedProps="cos",dependentOn="site-pair",container="classes-of-service")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="cos" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="unique identifier of probe")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="probe-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="identifier of probe")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="probe-type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="type of probe")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="classes-of-service">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="class-of-service of probe")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:class-of-service" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="site-pair">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(indexedProps="site-pair-id",uniqueProps="site-pair-id",dependentOn="routing-instance",container="site-pairs")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="site-pair-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="unique identifier of probe")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="source-ip" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Prefix address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="destination-ip" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Prefix address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ip-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ip version, v4, v6")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="destination-hostname" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Hostname of the destination equipment to which SLAs are measured against.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="destination-equip-type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The type of destinatination equipment. Could be Router, UCPE, etc.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:classes-of-service" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="site-pairs">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="probe within a set")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:site-pair" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="routing-instance">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(indexedProps="routing-instance-id",uniqueProps="routing-instance-id",dependentOn="site-pair-set",container="routing-instances")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="routing-instance-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of routing instance")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="rpm-owner" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="rpm owner")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:site-pairs" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="routing-instances">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="set of probes related to generic-vnf routing instance")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:routing-instance" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="site-pair-set">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="site-pair-set-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of site pair set.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:routing-instances" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="site-pair-sets">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of sets of instances for probes related to generic-vnf")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:site-pair-set" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vpn-binding">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="VPN binding",nameProps="vpn-name,vpn-type",indexedProps="vpn-name,vpn-id,global-route-target,vpn-type",searchable="vpn-name",uniqueProps="vpn-id",container="vpn-bindings",namespace="network")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="vpn-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="VPN ID, globally unique within A&amp;AI")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vpn-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="VPN Name")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="global-route-target" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Number used to identify a VPN, globally unique in the network")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vpn-platform" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the platform associated with the VPN example AVPN, Mobility")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vpn-type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Type of the vpn, should be taken from enumerated/valid values")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="route-distinguisher" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used to distinguish the distinct VPN routes of separate customers who connect to the provider in an MPLS network.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="route-target-role" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Role assigned to this route target")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="l3-networks relate to vpn-bindings")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vpn-bindings">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:vpn-binding" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vpls-pe">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="VPLS Provider Edge routers.",indexedProps="prov-status,equipment-name",container="vpls-pes",namespace="network")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="equipment-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true)</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="prov-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipv4-oam-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Address tail-f uses to configure vpe, also used for troubleshooting and is IP used for traps generated by VPE (v4-loopback0-ip-address).")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="equipment-role" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Client should send valid enumerated value, e.g., VPLS-PE.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vlan-id-outer" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Temporary location for stag to get to VCE")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:p-interfaces" minOccurs="0"/>
+        <xs:element ref="tns:lag-interfaces" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vpls-pes">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of VPLS Provider Edge routers")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:vpls-pe" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="multicast-configuration">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(indexedProps="multicast-configuration-id",uniqueProps="multicast-configuration-id",container="multicast-configurations",namespace="network")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="multicast-configuration-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of multicast configuration.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="multicast-protocol" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="protocol of multicast configuration")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="rp-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="rp type of multicast configuration")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="multicast-configurations">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="multicast configuration of generic-vnf ip-address")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:multicast-configuration" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="cvlan-tag-entry">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(dependentOn="port-group",indexedProps="cvlan-tag",container="cvlan-tags")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="cvlan-tag" type="xs:unsignedInt">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="See mis-na-virtualization-platform.yang")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="cvlan-tags">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:cvlan-tag-entry" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="port-group">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="interface-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of the interface")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="neutron-network-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron network id of this Interface")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="neutron-network-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron network name of this Interface")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="interface-role" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Role assigned to this Interface, should use values as defined in OPENECOMP Yang models.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="port-group-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Unique ID for port group in vmware")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="port-group-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Likely to duplicate value of neutron network name")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="switch-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="DVS or standard switch name (should be non-null for port groups associated with DVS)")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="orchestration-status" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="mso-catalog-key" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:cvlan-tags" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="port-groups">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:port-group" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="license">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Metadata for license group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce,vpe",container="licenses")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="group-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID for the license group the resource belongs to, should be uuid.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of a license resource. ")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Concurrency value")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="licenses">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Licenses to be allocated across resources, keyed by group-uuid and resource-uuid, related to license management")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:license" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="entitlement">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Metadata for entitlement group.",indexedProps="group-uuid,resource-uuid",dependentOn="generic-vnf,vce,vpe",container="entitlements")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="group-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID for the entitlement group the resource comes from, should be uuid.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-uuid" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of an entitlement resource. ")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Concurrency value")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="entitlements">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Entitlements, keyed by group-uuid and resource-uuid, related to license management")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:entitlement" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vce">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="vnf-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of VNF.  This is unique across the graph.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vnf-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of VNF.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vnf-name2" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Alternate name of VNF.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vnf-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource.  This field has been overloaded and clients should expect changes                  to occur in the future to this field as ASDC matures.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="service-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Unique identifier of service from ASDC.  Expect this to change as ASDC matures.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="regional-resource-zone" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="prov-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="operational-state" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="license-key" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="License key")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="equipment-role" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Network role being played by this VNF")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="mso-catalog-key" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vpe-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Unique ID of VPE connected to this VCE.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="v6-vce-wan-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Valid v6 IP address for the WAN Link on this router.  Implied length of /64.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipv4-oam-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Address tail-f uses to configure vce, also used for troubleshooting and is IP used for traps generated by VCE.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipv4-loopback0-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Loopback0 address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="entitlement-resource-uuid" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Entitlement resource uuid")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:port-groups" minOccurs="0"/>
+        <xs:element ref="tns:licenses" minOccurs="0"/>
+        <xs:element ref="tns:entitlements" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vces">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of Virtual Customer Edge Routers, used specifically for Gamma.  This object is deprecated.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:vce" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vpe">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Relationship-list must include related to info for complex.",nameProps="vnf-name",indexedProps="vnf-name,vnf-name2,vnf-type,heat-stack-id,vnf-id,regional-resource-zone,prov-status,service-id",searchable="vnf-id,vnf-name,vnf-name2",uniqueProps="vnf-id",container="vpes",namespace="network",extendsFrom="vnf")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="vnf-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of VNF.  This is unique across the graph.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vnf-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of VNF.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vnf-name2" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Alternate name of VNF.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vnf-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource.  This field has been overloaded and clients should expect changes                  to occur in the future to this field as ASDC matures.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="service-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Unique identifier of service from ASDC")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="regional-resource-zone" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="prov-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="operational-state" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="license-key" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="License key")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="equipment-role" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Client should send valid enumerated value")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="mso-catalog-key" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipv4-oam-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Address tail-f uses to configure vpe, also used for troubleshooting and is IP used for traps generated by VPE (v4-loopback0-ip-address).")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipv4-oam-gateway-address-prefix-length" type="xs:int" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Prefix length for oam-address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipv4-oam-gateway-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Gateway address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="v4-loopback0-ip-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Loopback0 address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vlan-id-outer" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Temporary location for stag to get to VCE")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="as-number" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="as-number of the VPE")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="summary-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="details regarding the vpe operation")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="encrypted-access-flag" type="xs:boolean" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="indicates whether vpe access uses SSH")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:l-interfaces" minOccurs="0"/>
+        <xs:element ref="tns:lag-interfaces" minOccurs="0"/>
+        <xs:element ref="tns:licenses" minOccurs="0"/>
+        <xs:element ref="tns:entitlements" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vpes">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Virtual provider edge router. In 1504, A&amp;AI will populate this object through an M&amp;P and tool provided to operations.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:vpe" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vnfc">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="vnfc-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of vnfc.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vnfc-function-code" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="function code")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vnfc-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="type")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="prov-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="prov status of this vnfc")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by APP-C")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipaddress-v4-oam-vip" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Oam V4 vip address of this vnfc")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="in-maint" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is in maintenance mode (maintenance mode = true)")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="is-closed-loop-disabled" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="group-notation" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Group notation of VNFC")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vnfcs">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="virtual network components associated with a vserver from application controller.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:vnfc" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="subnet">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(indexedProps="subnet-id,subnet-name",nameProps="subnet-name",uniqueProps="subnet-id",dependentOn="l3-network",container="subnets")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="subnet-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Subnet ID, should be UUID.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="subnet-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name associated with the subnet.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="neutron-subnet-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron id of this subnet")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="gateway-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="gateway ip address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="network-start-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="network start address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="cidr-mask" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="cidr mask")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ip-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ip version")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="dhcp-enabled" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="dhcp enabled")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="dhcp-start" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the start address reserved for use by dhcp")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="dhcp-end" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the last address reserved for use by dhcp")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="subnets">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:subnet" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="ctag-assignment">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(indexedProps="vlan-id-inner",dependentOn="l3-network",container="ctag-assignments")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="vlan-id-inner" type="xs:unsignedInt">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="id.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="ctag-assignments">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:ctag-assignment" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="segmentation-assignment">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Openstack segmentation assignment.",indexedProps="segmentation-id",dependentOn="l3-network",container="segmentation-assignments")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="segmentation-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Concurrency value")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="segmentation-assignments">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of openstack segmentation assignments")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:segmentation-assignment" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="l3-network">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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-name",uniqueProps="network-id",container="l3-networks",namespace="network")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="network-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Network ID, should be uuid. Unique across A&amp;AI.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="network-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of the network, governed by some naming convention..")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="network-type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Type of the network - who defines these values?")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="network-role" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Role the network plans - who defines these values?")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="network-technology" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Network technology - who defines these values?")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="neutron-network-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron network id of this Interface")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="is-bound-to-vpn" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="Set to true if bound to VPN")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="service-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Unique identifier of service from ASDC")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="network-role-instance" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="network role instance")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="mso-catalog-key" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="contrail-network-fqdn" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Contrail FQDN for the network")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="persona-model-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="persona-model-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="persona-model-customization-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="widget-model-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="widget-model-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="physical-network-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name associated with the physical network.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="is-provider-network" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a provider network.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="is-shared-network" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is a shared network.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="is-external-network" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="boolean indicatating whether or not network is an external network.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:subnets" minOccurs="0"/>
+        <xs:element ref="tns:ctag-assignments" minOccurs="0"/>
+        <xs:element ref="tns:segmentation-assignments" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Relates to tenant (or is it a child of tenant), complex, service, vpn-binding")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="l3-networks">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:l3-network" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="network-policy">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(nameProps="network-policy-fqdn",indexedProps="network-policy-id,network-policy-fqdn",searchable="network-policy-fqdn",uniqueProps="network-policy-id",container="network-policies",namespace="network")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="network-policy-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="UUID representing unique key to this instance")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="network-policy-fqdn" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Contrail FQDN for the policy")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ID for the openStack Heat instance")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="network-policies">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:network-policy" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vf-module">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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-name",dependentOn="generic-vnf",container="vf-modules")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="vf-module-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique ID of vf-module.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vf-module-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of vf-module")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="orchestration status of this vf-module, mastered by MSO")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="is-base-vf-module" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether or not this object is base vf module")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="persona-model-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="persona-model-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="persona-model-customization-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="widget-model-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="widget-model-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="contrail-service-instance-fqdn" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the Contrail unique ID for a service-instance")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vf-modules">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of vf-modules, a deployment unit of VNFCs")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:vf-module" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="generic-vnf">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="vnf-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of VNF.  This is unique across the graph.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vnf-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of VNF.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vnf-name2" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Alternate name of VNF.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vnf-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource.  This field has been overloaded and clients should expect changes                  to occur in the future to this field as ASDC matures.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="service-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Unique identifier of service from ASDC")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="regional-resource-zone" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Regional way of organizing pservers, source of truth should define values")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="prov-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this resource by Service Assurance systems.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="operational-state" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="license-key" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="License key")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="equipment-role" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Client should send valid enumerated value")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, used by MSO.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="mso-catalog-key" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="management-option" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="identifier of managed by openecomp or customer")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipv4-oam-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipv4-loopback0-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="v4 Loopback0 address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="nm-lan-v6-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="v6 Loopback address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="management-v6-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="v6 management address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vcpu" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="number of vcpus ordered for this instance of VNF, used for VNFs with no vservers/flavors")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vcpu-units" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="units associated with vcpu, used for VNFs with no vservers/flavors")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vmemory" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="number of GB of memory ordered for this instance of VNF, used for VNFs with no vservers/flavors")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vmemory-units" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="units associated with vmemory, used for VNFs with no vservers/flavors")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vdisk" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="number of vdisks ordered for this instance of VNF, used for VNFs with no vservers/flavors")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vdisk-units" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="units associated with vdisk, used for VNFs with no vservers/flavors")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="in-maint" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="is-closed-loop-disabled" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(defaultValue="false",description="used to indicate whether closed loop function is enabled on this node")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="summary-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="details regarding the generic-vnf operation")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="encrypted-access-flag" type="xs:boolean" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="indicates whether generic-vnf access uses SSH")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="entitlement-assignment-group-uuid" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="UUID of the Entitlement group used for licensing VNFs")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="entitlement-resource-uuid" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="UUID of the specific entitlement resource")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="license-assignment-group-uuid" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="UUID of the license assignment group")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="license-key-uuid" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="UUID of the actual license resource")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="persona-model-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model id for this resource or service model.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="persona-model-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC model version for this resource or service model.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="persona-model-customization-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="captures the id of all the configuration used to customize the resource for the service.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="widget-model-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary widget model. This maps directly to the A&amp;AI widget.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="widget-model-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="the ASDC data dictionary version of the widget model.This maps directly to the A&amp;AI version of the widget.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="as-number" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="as-number of the VNF")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="regional-resource-subzone" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="represents sub zone of the rr plane")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:l-interfaces" minOccurs="0"/>
+        <xs:element ref="tns:lag-interfaces" minOccurs="0"/>
+        <xs:element ref="tns:vf-modules" minOccurs="0"/>
+        <xs:element ref="tns:licenses" minOccurs="0"/>
+        <xs:element ref="tns:entitlements" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="generic-vnfs">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of VNFs")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:generic-vnf" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="lag-link">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="LAG links can connect lag-interfaces",indexedProps="link-name",container="lag-links",namespace="network")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="link-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Alphabetical concatenation of lag-interface names")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="lag-links">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of link aggregation connections")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:lag-link" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="newvce">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="vnf-id2" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of VNF, can't use same attribute name right now until we promote this new object")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vnf-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of VNF.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vnf-name2" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Alternate name of VNF.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vnf-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="String capturing type of vnf, that was intended to identify the ASDC resource.  This field has been overloaded and clients should expect changes                  to occur in the future to this field as ASDC matures.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="prov-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Trigger for operational monitoring of this VNF by BAU Service Assurance systems.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="operational-state" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicator for whether the resource is considered operational")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="license-key" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="License key")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipv4-oam-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Address tail-f uses to configure vpe, also used for troubleshooting and is IP used for traps generated by VPE (v4-loopback0-ip-address).")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="equipment-role" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Client should send valid enumerated value, e.g., VPE.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipv4-loopback0-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="v4 Loopback0 address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Orchestration status of this VNF, mastered by MSO.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="heat-stack-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Heat stack id corresponding to this instance, managed by MSO")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="mso-catalog-key" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Corresponds to the SDN-C catalog id used to configure this VCE")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:l-interfaces" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="newvces">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:newvce" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="pnf">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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 openecomp node or uCPE.",indexedProps="pnf-name,orchestration-status,inv-status",searchable="pnf-name",uniqueProps="pnf-name",container="pnfs",namespace="network")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="pnf-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="unique name of Physical Network Function.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="pnf-name2" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="name of Physical Network Function.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="pnf-name2-source" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="source of name2")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="pnf-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="id of pnf")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="equip-type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Equipment type.  Source of truth should define valid values.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="equip-vendor" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Equipment vendor.  Source of truth should define valid values.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="equip-model" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Equipment model.  Source of truth should define valid values.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="management-option" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="identifier of managed by openecomp or customer")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipaddress-v4-oam" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ipv4-oam-address with new naming convention for IP addresses")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="sw-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="sw-version is the version of SW for the hosted application on the PNF.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="orchestration-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="orchestration-status is the status of orchestration on the PNF.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="in-maint" type="xs:boolean">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.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.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="frame-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ID of the physical frame (relay rack) where pnf is installed.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="serial-number" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Serial number of the device")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipaddress-v4-loopback-0" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV4 Loopback 0 address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipaddress-v6-loopback-0" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV6 Loopback 0 address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipaddress-v4-aim" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV4 AIM address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipaddress-v6-aim" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV6 AIM address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipaddress-v6-oam" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="IPV6 OAM address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="inv-status" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="CANOPI's inventory status.  Only set with values exactly as defined by CANOPI.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:p-interfaces" minOccurs="0"/>
+        <xs:element ref="tns:lag-interfaces" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="pnfs">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of Physical Network Functions.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:pnf" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="physical-link">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="link-name" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="e.g., hostnameA_p-connection_nameA_hostnameZ+p_connection-nameZ")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="speed-value" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the numeric part of the speed")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="speed-units" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Captures the units corresponding to the speed")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="circuit-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Circuit it")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="dual-mode" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Dual access mode (e.g., primary, secondary")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="management-option" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="To provide information on who manages this circuit. A&amp;AI or 3rd party transport provider")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="service-provider-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Name of the service Provider on this link.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="physical-links">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of physical connections, typically between p-interfaces")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:physical-link" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vig-server">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="vig-address-type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="indicates whether the VIG is for AVPN or INTERNET")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipaddress-v4-vig" type="xs:string" minOccurs="0" maxOccurs="unbounded">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="v4 IP of the vig server")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipaddress-v6-vig" type="xs:string" minOccurs="0" maxOccurs="unbounded">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="v6 IP of the vig server")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vig-servers">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:vig-server" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="ipsec-configuration">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="ipsec-configuration-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="UUID of this configuration")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="requested-vig-address-type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicate the type of VIG server like AVPN, INTERNET, BOTH")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="requested-encryption-strength" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Encryption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="requested-dmz-type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="openecomp can offer a shared DMZ or a DMZ specific to a customer")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="shared-dmz-network-address" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Network address of shared DMZ")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="requested-customer-name" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="If the DMZ is a custom DMZ, this field will indicate the customer information")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ike-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="can be 1 or 2")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ikev1-authentication" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Contains values like md5, sha1, sha256, sha384")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ikev1-encryption" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Encyption values like 3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ikev1-dh-group" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Diffie-Hellman group like DH-GROUP2, DH-GROUP5, DH-GROUP14")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ikev1-am-group-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Group name defined in VIG for clients using aggressive mode")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ikev1-am-password" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="pre-shared key for the above group name ")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ikev1-sa-lifetime" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Lifetime for IKEv1 SA")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipsec-authentication" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="md5, sha1, sha256, sha384")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipsec-encryption" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="3des-cbc, des-cbc, aes-128-cbc, aes-192-cbc, aes-265-cbc")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipsec-sa-lifetime" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Life time for IPSec SA")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="ipsec-pfs" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="enable PFS or not")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="xauth-userid" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="user ID for xAuth, sm-user,ucpeHostName,nmteHostName")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="xauth-user-password" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Encrypted using the Juniper $9$ algorithm")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="dpd-interval" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="The time between DPD probe")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="dpd-frequency" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Maximum number of DPD before claiming the tunnel is down")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:vig-servers" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="ipsec-configurations">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:ipsec-configuration" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="route-table-reference">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="route-table-reference-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Route Table Reference id, UUID assigned to this instance.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="route-table-reference-fqdn" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="FQDN entry in the route table.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Concurrency value")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="route-table-references">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of openstack route table references")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:route-table-reference" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="instance-group">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="General mechanism for grouping instances",nameProps="description",uniqueProps="id",indexedProps="id,description,type,sub-type",container="instance-groups",namespace="network")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Instance Group ID, UUID assigned to this instance.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="description" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Descriptive text to help identify the usage of this instance-group")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="type" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Only valid value today is lower case ha for high availability")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="sub-type" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Valid values for ha type are [geo-activeactive, geo-activestandby, local-activeactive, local-activestandby]")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Concurrency value")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="instance-groups">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Collection of openstack route table references")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:instance-group" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="network">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Namespace for network inventory resources.")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:logical-links" minOccurs="0"/>
+        <xs:element ref="tns:site-pair-sets" minOccurs="0"/>
+        <xs:element ref="tns:vpn-bindings" minOccurs="0"/>
+        <xs:element ref="tns:vpls-pes" minOccurs="0"/>
+        <xs:element ref="tns:multicast-configurations" minOccurs="0"/>
+        <xs:element ref="tns:vces" minOccurs="0"/>
+        <xs:element ref="tns:vpes" minOccurs="0"/>
+        <xs:element ref="tns:vnfcs" minOccurs="0"/>
+        <xs:element ref="tns:l3-networks" minOccurs="0"/>
+        <xs:element ref="tns:network-policies" minOccurs="0"/>
+        <xs:element ref="tns:generic-vnfs" minOccurs="0"/>
+        <xs:element ref="tns:lag-links" minOccurs="0"/>
+        <xs:element ref="tns:newvces" minOccurs="0"/>
+        <xs:element ref="tns:pnfs" minOccurs="0"/>
+        <xs:element ref="tns:physical-links" minOccurs="0"/>
+        <xs:element ref="tns:ipsec-configurations" minOccurs="0"/>
+        <xs:element ref="tns:route-table-references" minOccurs="0"/>
+        <xs:element ref="tns:instance-groups" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="reserved-prop-names">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="last-mod-source-of-truth" type="xs:string" minOccurs="0"/>
+        <xs:element name="aai-node-type" type="xs:string" minOccurs="0"/>
+        <xs:element name="aai-created-ts" type="xs:unsignedInt" minOccurs="0"/>
+        <xs:element name="aai-unique-key" type="xs:string" minOccurs="0"/>
+        <xs:element name="aai-last-mod-ts" type="xs:unsignedInt" minOccurs="0"/>
+        <xs:element name="source-of-truth" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="edge-prop-names">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.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")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="edgeLabel" type="xs:string" minOccurs="0"/>
+        <xs:element name="direction" type="xs:string" minOccurs="0"/>
+        <xs:element name="multiplicityRule" type="xs:string" minOccurs="0"/>
+        <xs:element name="isParent" type="xs:boolean" minOccurs="0"/>
+        <xs:element name="usesResource" type="xs:boolean" minOccurs="0"/>
+        <xs:element name="hasDelTarget" type="xs:boolean" minOccurs="0"/>
+        <xs:element name="SVC-INFRA" type="xs:string" minOccurs="0"/>
+        <xs:element name="SVC-INFRA-REV" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="aai-internal">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:reserved-prop-names" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element ref="tns:edge-prop-names" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="inventory">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:search" minOccurs="0"/>
+        <xs:element ref="tns:actions" minOccurs="0"/>
+        <xs:element ref="tns:cloud-infrastructure" minOccurs="0"/>
+        <xs:element ref="tns:license-management" minOccurs="0"/>
+        <xs:element ref="tns:business" minOccurs="0"/>
+        <xs:element ref="tns:service-design-and-creation" minOccurs="0"/>
+        <xs:element ref="tns:network" minOccurs="0"/>
+        <xs:element ref="tns:aai-internal" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="notification-event-header">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="id" type="xs:string" minOccurs="0"/>
+        <xs:element name="timestamp" type="xs:string" minOccurs="0"/>
+        <xs:element name="source-name" type="xs:string" minOccurs="0"/>
+        <xs:element name="domain" type="xs:string" minOccurs="0"/>
+        <xs:element name="sequence-number" type="xs:string" minOccurs="0"/>
+        <xs:element name="severity" type="xs:string" minOccurs="0"/>
+        <xs:element name="event-type" type="xs:string" minOccurs="0"/>
+        <xs:element name="version" type="xs:string" minOccurs="0"/>
+        <xs:element name="action" type="xs:string" minOccurs="0"/>
+        <xs:element name="entity-type" type="xs:string" minOccurs="0"/>
+        <xs:element name="top-entity-type" type="xs:string" minOccurs="0"/>
+        <xs:element name="entity-link" type="xs:string" minOccurs="0"/>
+        <xs:element name="status" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="notification-event">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="cambria.partition" type="xs:string" minOccurs="0"/>
+        <xs:element ref="tns:notification-event-header" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="query-parameters">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="QueryParameters for performing a named-query or model query")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:named-query" minOccurs="0"/>
+        <xs:element ref="tns:model" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="instance-filter">
+    <xs:complexType>
+      <xs:sequence/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="instance-filters">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="InstanceFilters for performing a named-query or model query")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:instance-filter" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="model-and-named-query-search">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="ModelAndNamedQuerySearch holds query-parameters and instance-properties for performing a named-query or model query")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:query-parameters" minOccurs="0"/>
+        <xs:element ref="tns:instance-filters" minOccurs="0"/>
+        <xs:element name="top-node-type" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="properties">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Property holder for query properties or instance properties")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="property-name" type="xs:string" minOccurs="0"/>
+        <xs:element name="property-value" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="extra-properties">
+    <xs:complexType>
+      <xs:sequence/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="inventory-response-item">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Inventory item for response list",container="inventory-response-items")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="model-name" type="xs:string" minOccurs="0"/>
+        <xs:element ref="tns:extra-properties" minOccurs="0"/>
+        <xs:element ref="tns:inventory-response-items" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="inventory-response-items">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Container for inventory items in response list",container="response-list")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:inventory-response-item" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="response-list">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Response container for the results of a named-query or model query")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element ref="tns:inventory-response-items" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="extra-property">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="property-name" type="xs:string" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vnf">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="Abstract vnf class",indexedProps="vnf-id",uniqueProps="vnf-id",inheritors="vce,vpe,generic-vnf",isAbstract="true")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="vnf-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="Unique id of VNF.  This is unique across the graph.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+</xs:schema>
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/pom.xml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/pom.xml
new file mode 100644
index 0000000..dfbc90a
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/pom.xml
@@ -0,0 +1,120 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <name>onap-sdc-artifact-generator-core</name>
+    <artifactId>onap-sdc-artifact-generator-core</artifactId>
+
+    <parent>
+        <artifactId>onap-common-lib</artifactId>
+        <groupId>org.onap.sdc.common</groupId>
+        <version>1.2.0-SNAPSHOT</version>
+        <relativePath>../../</relativePath>
+    </parent>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.aspectj</groupId>
+            <artifactId>aspectjrt</artifactId>
+            <version>${aspectj.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+            <version>${slf4j.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>ch.qos.logback</groupId>
+            <artifactId>logback-classic</artifactId>
+            <version>${logback.version}</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>ch.qos.logback</groupId>
+            <artifactId>logback-core</artifactId>
+            <version>${logback.version}</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-databind</artifactId>
+            <version>${jackson.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.dataformat</groupId>
+            <artifactId>jackson-dataformat-yaml</artifactId>
+            <version>${jackson.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>commons-codec</groupId>
+            <artifactId>commons-codec</artifactId>
+            <version>${commons.codec.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.openecomp.sdc</groupId>
+            <artifactId>openecomp-sdc-logging-api</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.openecomp.sdc</groupId>
+            <artifactId>openecomp-sdc-logging-core</artifactId>
+            <version>${project.version}</version>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.onap.sdc.common</groupId>
+            <artifactId>onap-sdc-artifact-generator-api</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.testng</groupId>
+            <artifactId>testng</artifactId>
+            <scope>test</scope>
+            <version>${testng.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>commons-io</groupId>
+            <artifactId>commons-io</artifactId>
+            <version>RELEASE</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.reflections</groupId>
+            <artifactId>reflections</artifactId>
+            <version>${org.reflections.version}</version>
+        </dependency>
+    </dependencies>
+    <build>
+        <pluginManagement>
+            <plugins>
+
+                <plugin>
+                    <groupId>org.codehaus.mojo</groupId>
+                    <artifactId>aspectj-maven-plugin</artifactId>
+                    <version>1.8</version>
+                    <!-- new configuration is here -->
+                    <configuration>
+                        <complianceLevel>1.8</complianceLevel>
+                        <source>1.8</source>
+                        <target>1.8</target>
+                    </configuration>
+                    <executions>
+                        <execution>
+                            <goals>
+                                <goal>compile</goal>
+                                <goal>test-compile</goal>
+                            </goals>
+                        </execution>
+                    </executions>
+                </plugin>
+            </plugins>
+        </pluginManagement>
+
+        <plugins>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>aspectj-maven-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/main/java/org/onap/sdc/generator/GeneratorManager.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/main/java/org/onap/sdc/generator/GeneratorManager.java
new file mode 100644
index 0000000..e0049bd
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/main/java/org/onap/sdc/generator/GeneratorManager.java
@@ -0,0 +1,93 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator;
+
+import static org.onap.sdc.generator.util.ArtifactGeneratorUtil.logError;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.onap.sdc.generator.data.ArtifactType;
+import org.onap.sdc.generator.data.GeneratorConfiguration;
+import org.onap.sdc.generator.data.GeneratorConstants;
+import org.onap.sdc.generator.intf.ArtifactGenerator;
+import org.onap.sdc.generator.intf.Generator;
+import org.onap.sdc.generator.util.ArtifactGeneratorUtil;
+import org.openecomp.sdc.logging.api.Logger;
+import org.openecomp.sdc.logging.api.LoggerFactory;
+import org.reflections.Reflections;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+public class GeneratorManager {
+
+  private static Logger log = LoggerFactory.getLogger(GeneratorManager.class.getName());
+  private static Map<ArtifactType, ArtifactGenerator> generators = new HashMap<>();
+
+  /**
+   * Gets active artifact generators.
+   *
+   * @param clientConfiguration the client configuration
+   * @return the active artifact generators
+   * @throws Exception the exception
+   */
+  public static List<ArtifactGenerator> getActiveArtifactGenerators(String clientConfiguration)
+      throws Exception {
+
+    if (generators.isEmpty()) {
+      log.debug("Getting list of active generators");
+      Reflections reflections = new Reflections("org.onap.sdc.generator");
+      Set<Class<?>> annotated = reflections.getTypesAnnotatedWith(Generator.class);
+      for (Class<?> clazz : annotated) {
+        Generator generator = clazz.getAnnotation(Generator.class);
+        generators.put(generator.artifactType(), (ArtifactGenerator) clazz.newInstance());
+      }
+    }
+
+    log.debug("Parsing generator configuration from the client configuration : "
+        + clientConfiguration);
+    GeneratorConfiguration gf = getGeneratorConfiguration(clientConfiguration);
+    List<ArtifactGenerator> generatorList = new ArrayList<>();
+    if (gf.getArtifactTypes() != null && !gf.getArtifactTypes().isEmpty()) {
+      for (ArtifactType type : gf.getArtifactTypes()) {
+        if (generators.get(type) != null) {
+          generatorList.add(generators.get(type));
+        }
+      }
+    }
+
+    return generatorList;
+  }
+
+  private static GeneratorConfiguration getGeneratorConfiguration(String jsonConfiguration) {
+    try {
+      return new ObjectMapper().readValue(jsonConfiguration, GeneratorConfiguration.class);
+    } catch (Exception exception) {
+      ArtifactGeneratorUtil
+          .logError(GeneratorConstants.GENERATOR_ERROR_INVALID_CLIENT_CONFIGURATION, exception);
+      throw new IllegalArgumentException(
+          GeneratorConstants.GENERATOR_ERROR_INVALID_CLIENT_CONFIGURATION, exception);
+    }
+  }
+
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/main/java/org/onap/sdc/generator/GeneratorTask.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/main/java/org/onap/sdc/generator/GeneratorTask.java
new file mode 100644
index 0000000..66004ec
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/main/java/org/onap/sdc/generator/GeneratorTask.java
@@ -0,0 +1,74 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator;
+
+import org.onap.sdc.generator.data.Artifact;
+import org.onap.sdc.generator.data.GenerationData;
+import org.onap.sdc.generator.intf.ArtifactGenerator;
+import org.openecomp.sdc.logging.api.Logger;
+import org.openecomp.sdc.logging.api.LoggerFactory;
+
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.RecursiveTask;
+
+public class GeneratorTask extends RecursiveTask<GenerationData> {
+
+  private static Logger log = LoggerFactory.getLogger(GeneratorTask.class.getName());
+
+  List<Artifact> input;
+  List<ArtifactGenerator> generators;
+  Map<String, String> additionalParams;
+
+  /**
+   * Instantiates a new Generator task.
+   *
+   * @param generators       the generators
+   * @param input            the input
+   * @param additionalParams the additional params
+   */
+  public GeneratorTask(List<ArtifactGenerator> generators, List<Artifact> input,
+                       Map<String, String> additionalParams ) {
+    this.input = input;
+    this.generators = generators;
+    this.additionalParams = additionalParams;
+  }
+
+  @Override
+  protected GenerationData compute() {
+    if (generators.size() == 1) {
+      log.debug("Instantiating Generator : " + generators.get(0).getClass().getName());
+      return generators.remove(0).generateArtifact(input, additionalParams);
+    } else {
+      LinkedList<ArtifactGenerator> generator = new LinkedList<>();
+      generator.add(generators.remove(0));
+      GeneratorTask tobeDone = new GeneratorTask(generator, input, additionalParams);
+      GeneratorTask tobeForked =
+          new GeneratorTask(new LinkedList<ArtifactGenerator>(generators), input, additionalParams);
+      tobeForked.fork();
+      GenerationData output = tobeDone.compute();
+      output.add(tobeForked.join());
+      return output;
+    }
+  }
+
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/main/java/org/onap/sdc/generator/MockArtifactGenerator.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/main/java/org/onap/sdc/generator/MockArtifactGenerator.java
new file mode 100644
index 0000000..9753c26
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/main/java/org/onap/sdc/generator/MockArtifactGenerator.java
@@ -0,0 +1,81 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator;
+
+import org.onap.sdc.generator.data.GenerationData;
+import org.onap.sdc.generator.intf.ArtifactGenerator;
+import org.onap.sdc.generator.data.Artifact;
+import org.onap.sdc.generator.data.ArtifactType;
+import org.onap.sdc.generator.data.GeneratorUtil;
+import org.onap.sdc.generator.data.GroupType;
+import org.onap.sdc.generator.intf.Generator;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@Generator(artifactType = ArtifactType.OTHER)
+public class MockArtifactGenerator implements ArtifactGenerator {
+
+  @Override
+  public GenerationData generateArtifact(List<Artifact> input,
+                                         Map<String, String> additionalParams) {
+    final GenerationData data = new GenerationData();
+
+    String staticArtifactName = "MOCK_Generator-Static-Artifact.xml";
+    String staticArtifactLabel = "MOCK-Generator-Static-Artifact";
+    final String dynamicArtifactName = "MOCK_Generator-Dynamic-Artifact.xml";
+    final String dynamicArtifactLabel = "MOCK-Generator-Dynamic-Artifact";
+    String staticArtifact = getStaticArtifact();
+    String dynamicArtifact = getDynamicArtifact();
+
+    Artifact staticArtifactModel = new Artifact(ArtifactType.OTHER.name(), GroupType.OTHER.name(),
+        GeneratorUtil.checkSum(staticArtifact.getBytes()),
+        GeneratorUtil.encode(staticArtifact.getBytes()));
+    staticArtifactModel.setName(staticArtifactName);
+    staticArtifactModel.setLabel(staticArtifactLabel);
+    staticArtifactModel.setDescription("Mock Generator");
+
+    Artifact dynamicArtifactModel = new Artifact(ArtifactType.OTHER.name(), GroupType.OTHER.name(),
+        GeneratorUtil.checkSum(dynamicArtifact.getBytes()),
+        GeneratorUtil.encode(dynamicArtifact.getBytes()));
+    dynamicArtifactModel.setName(dynamicArtifactName);
+    dynamicArtifactModel.setLabel(dynamicArtifactLabel);
+    dynamicArtifactModel.setDescription("Mock Generator");
+
+    data.add(staticArtifactModel);
+    data.add(dynamicArtifactModel);
+
+    return data;
+
+  }
+
+  private String getStaticArtifact() {
+    return "<?xml version=\"1.0\" encoding=\"UTF-8\" ?><theObj><name>Hi I'm Static</name></theObj>";
+  }
+
+  private String getDynamicArtifact() {
+    return
+        "<?xml version=\"1.0\" encoding=\"UTF-8\" ?><theObj><name>Hi I'm Static</name><timestamp>"
+            + new Date() + "</timestamp></theObj>";
+  }
+
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/main/java/org/onap/sdc/generator/aai/AaiArtifactGenerator.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/main/java/org/onap/sdc/generator/aai/AaiArtifactGenerator.java
new file mode 100644
index 0000000..995d084
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/main/java/org/onap/sdc/generator/aai/AaiArtifactGenerator.java
@@ -0,0 +1,684 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.aai;
+
+import static org.onap.sdc.generator.util.ArtifactGeneratorUtil.logError;
+
+import org.onap.sdc.generator.aai.model.AllotedResource;
+import org.onap.sdc.generator.aai.model.ProvidingService;
+import org.onap.sdc.generator.aai.model.Resource;
+import org.onap.sdc.generator.aai.model.Service;
+import org.onap.sdc.generator.aai.model.Widget;
+import org.onap.sdc.generator.aai.tosca.GroupDefinition;
+import org.onap.sdc.generator.aai.types.ModelType;
+import org.onap.sdc.generator.data.AdditionalParams;
+import org.onap.sdc.generator.data.ArtifactType;
+import org.onap.sdc.generator.data.GenerationData;
+import org.onap.sdc.generator.data.GeneratorConstants;
+import org.onap.sdc.generator.data.GroupType;
+import org.onap.sdc.generator.data.WidgetConfigurationUtil;
+import org.onap.sdc.generator.intf.ArtifactGenerator;
+import org.onap.sdc.generator.intf.Generator;
+import org.onap.sdc.generator.util.ArtifactGeneratorUtil;
+import org.openecomp.sdc.logging.api.Logger;
+import org.openecomp.sdc.logging.api.LoggerFactory;
+import org.onap.sdc.generator.aai.model.L3NetworkWidget;
+import org.onap.sdc.generator.aai.model.Model;
+import org.onap.sdc.generator.aai.model.TunnelXconnectWidget;
+import org.onap.sdc.generator.aai.model.VfModule;
+import org.onap.sdc.generator.aai.tosca.NodeTemplate;
+import org.onap.sdc.generator.aai.tosca.ToscaTemplate;
+import org.onap.sdc.generator.data.Artifact;
+import org.onap.sdc.generator.data.GeneratorUtil;
+import org.onap.sdc.generator.logging.annotations.Audit;
+import org.slf4j.MDC;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+
+@Generator(artifactType = ArtifactType.AAI)
+public class AaiArtifactGenerator implements ArtifactGenerator {
+
+  private static Logger log = LoggerFactory.getLogger(AaiArtifactGenerator.class.getName());
+
+  /**
+   * Implementation of the method to generate AAI artifacts.
+   *
+   * @param input List of input tosca files
+   * @return Translated/Error data as a {@link GenerationData} object
+   */
+  @Override
+  @Audit
+  public GenerationData generateArtifact(List<Artifact> input,
+                                         Map<String, String> additionalParams) {
+    try {
+      if (input != null && input.size() != 0 ) {
+        ArtifactGeneratorUtil.initializeArtifactLoggingContext(input.get(0));
+      }
+      initWidgetConfiguration();
+      return generateArtifactInternal(input, additionalParams);
+    } catch (Exception exception) {
+      ArtifactGeneratorUtil.logError(exception.getMessage(), exception);
+      GenerationData generationData = new GenerationData();
+      generationData.add(ArtifactType.AAI.name(), exception.getMessage());
+      return generationData;
+    }
+  }
+
+  /**
+   * Helper method to generate AAI artifacts.
+   *
+   * @param input List of input tosca files
+   * @return Translated/Error data as a {@link GenerationData} object
+   */
+  private GenerationData generateArtifactInternal(List<Artifact> input,
+                                                  Map<String, String> additionalParams) {
+    final GenerationData generationData = new GenerationData();
+
+    List<Resource> resources = new LinkedList<>();
+    Map<String, String> idTypeStore = new HashMap<>();
+    Map<String, String> resourcesVersion = new HashMap<>();
+
+    List<ToscaTemplate> toscas = new LinkedList<>();
+
+    String serviceVersion = additionalParams.get(AdditionalParams.ServiceVersion.getName());
+    if (serviceVersion == null) {
+      throw new IllegalArgumentException(GeneratorConstants
+          .GENERATOR_AAI_ERROR_MISSING_SERVICE_VERSION);
+    } else {
+      String versionRegex = "^[1-9]\\d*(\\.0)$";
+      if (! (serviceVersion.matches(versionRegex))) {
+        throw new IllegalArgumentException(String
+            .format(GeneratorConstants
+                .GENERATOR_AAI_INVALID_SERVICE_VERSION));
+      }
+    }
+
+    for (Artifact inputArtifact : input) {
+      ToscaTemplate tosca = getToscaModel(inputArtifact, serviceVersion);
+      validateTosca(tosca, inputArtifact);
+      ToscaTemplate processedTosca = preProcessingTosca(tosca);
+      toscas.add(processedTosca);
+    }
+
+    //Get the service tosca from the list of artifacts
+    ToscaTemplate serviceTosca = getServiceTosca(toscas);
+    if (serviceTosca == null) {
+      throw new IllegalArgumentException(GeneratorConstants
+          .GENERATOR_AAI_ERROR_MISSING_SERVICE_TOSCA);
+    }
+
+    Service service = new Service();
+    //Populate basic service model metadata
+    service.populateModelIdentificationInformation(serviceTosca.getMetadata());
+
+    if (serviceTosca.getTopology_template() != null
+        && serviceTosca.getTopology_template().getNode_templates() != null) {
+      processServiceTosca(service, idTypeStore,resourcesVersion, serviceTosca,resources);
+    }
+    validateResourceToscaAgainstService(idTypeStore, toscas);
+
+    //Process the resource tosca files
+    int counter = 0;
+    List<Resource> currentToscaResources = new LinkedList<>();
+    while (toscas.size() > 0) {
+      ToscaTemplate resourceTemplate = toscas.remove(0);
+      String resourceUuId = resourceTemplate.getMetadata().get("UUID");
+      String mapValue = idTypeStore.get(resourceUuId);
+      if (mapValue == null) {
+        log.warn(
+            "Additional tosca file found with resource version id : "
+                + resourceUuId);
+        continue;
+      }
+      //update resource version with version from service tosca
+      String resourceVersion = resourcesVersion.get(resourceUuId);
+      resourceTemplate.getMetadata().put("version", resourceVersion);
+      Model model = Model.getModelFor(idTypeStore.get(resourceTemplate.getModelVersionId()));
+
+      log.debug("Inside Resource artifact generation for resource");
+      model.populateModelIdentificationInformation(
+          resourceTemplate.getMetadata());  //Get base resource metadata information
+      //Found model from the type store so removing the same
+      idTypeStore.remove(model.getModelNameVersionId());
+      if (resourceTemplate.getTopology_template() != null
+          && resourceTemplate.getTopology_template().getNode_templates() != null) {
+        processVfTosca(idTypeStore, resourceTemplate, model);
+      }
+
+      //Process group information from tosca for vfModules
+      if (resourceTemplate.getTopology_template() != null
+          && resourceTemplate.getTopology_template().getGroups() != null) {
+        processVfModule(resources, currentToscaResources, resourceTemplate, model);
+      } else {
+        model.getWidgets().clear();
+      }
+
+      if ("Tunnel XConnect".equals(resourceTemplate.getMetadata().get("subcategory"))
+          && "Allotted Resource".equals(resourceTemplate.getMetadata().get("category"))) {
+        model.addWidget(new TunnelXconnectWidget());
+      }
+
+      resources.add((Resource) model);
+      currentToscaResources
+          .clear();    //Clearing the current tosca resource list for the next iteration
+      counter = 0;
+    }
+
+    AaiModelGenerator modelGenerator = AaiModelGenerator.getInstance();
+    //Generate AAI XML service model
+    MDC.put(GeneratorConstants.ARTIFACT_MODEL_INFO , service.getModelName() + "," + getArtifactLabel(service));
+    String aaiServiceModel = modelGenerator.generateModelFor(service);
+    generationData.add(getServiceArtifact(service, aaiServiceModel));
+
+    //Generate AAI XML resource model
+    for (Resource res : resources) {
+      MDC.put(GeneratorConstants.ARTIFACT_MODEL_INFO , res.getModelName() + "," + getArtifactLabel(res));
+      String aaiResourceModel = modelGenerator.generateModelFor(res);
+      generationData.add(getResourceArtifact(res, aaiResourceModel));
+    }
+
+    //Resetting logging parameters since they get overridden while writing metrics logs
+    // recursively for service, resource and widgets.
+    if (input != null && input.size() != 0 ) {
+      ArtifactGeneratorUtil.initializeArtifactLoggingContext(input.get(0));
+    }
+
+    return generationData;
+  }
+
+  private void validateResourceToscaAgainstService(Map<String, String> idTypeStore,
+                                                   List<ToscaTemplate> toscas) {
+    Iterator entries = idTypeStore.entrySet().iterator();
+    while (entries.hasNext()) {
+      Map.Entry entry = (Map.Entry) entries.next();
+      String resourceUuidFromService = (String)entry.getKey();
+      Iterator<ToscaTemplate> itr = toscas.iterator();
+      boolean toscaFound = false;
+      while (itr.hasNext()) {
+        ToscaTemplate toscaTemplate = itr.next();
+        String resourceUuId = toscaTemplate.getMetadata().get("UUID");
+        if (resourceUuidFromService.equals(resourceUuId)) {
+          toscaFound = true;
+          break;
+        }
+      }
+      if (toscaFound == false) {
+        throw new IllegalArgumentException(String
+            .format(GeneratorConstants.GENERATOR_AAI_ERROR_MISSING_RESOURCE_TOSCA,
+                resourceUuidFromService));
+      }
+    }
+
+  }
+
+  private ToscaTemplate preProcessingTosca(ToscaTemplate tosca) {
+    ToscaTemplate processedTosca = tosca;
+    if (tosca.getTopology_template() != null
+        && tosca.getTopology_template().getNode_templates() != null) {
+      Collection<NodeTemplate> coll =
+          processedTosca.getTopology_template().getNode_templates().values();
+      for (NodeTemplate node : coll) {
+
+        if (node.getType().contains("org.openecomp.resource.vf.") && node.getMetadata().get("category")
+            .equals("Allotted Resource")) {
+          node.setType("org.openecomp.resource.vf.allottedResource");
+        }
+        if (node.getType().contains("org.openecomp.resource.vfc.") && node.getMetadata().get
+            ("category")
+            .equals("Allotted Resource")) {
+          node.setType("org.openecomp.resource.vfc.AllottedResource");
+        }
+      }
+    }
+    return processedTosca;
+  }
+
+  private void processVfTosca(Map<String, String> idTypeStore, ToscaTemplate resourceTemplate,
+                              Model model) {
+    Set<String> keys = resourceTemplate.getTopology_template().getNode_templates().keySet();
+    boolean flag = false;
+    for (String key : keys) {
+      NodeTemplate node = resourceTemplate.getTopology_template().getNode_templates().get(key);
+      Model resourceNode = Model.getModelFor(node.getType());
+      if (resourceNode != null) {
+        if (resourceNode instanceof ProvidingService) {
+          flag = true;
+          Map<String, String> properties = new HashMap<>();
+          Map<String, Object> nodeProperties = node.getProperties();
+          if (nodeProperties.get("providing_service_uuid") == null || nodeProperties.get(
+              "providing_service_invariant_uuid") == null) {
+            throw new IllegalArgumentException(String.format(
+                GeneratorConstants.GENERATOR_AAI_PROVIDING_SERVICE_METADATA_MISSING
+                , model.getModelId()));
+          }
+          for (String key1 : nodeProperties.keySet()) {
+            if (nodeProperties.get(key1) instanceof String) {
+              properties.put(key1, nodeProperties.get(key1).toString());
+            }
+          }
+          properties.put("version","1.0");
+          resourceNode.populateModelIdentificationInformation(properties);
+          model.addResource((Resource) resourceNode);
+        } else if (resourceNode instanceof Resource && !(resourceNode.getWidgetType().equals(
+            Widget.Type
+            .L3_NET))) {
+          //resourceNode.populateModelIdentificationInformation(node.getMetadata());
+          idTypeStore.put(resourceNode.getModelNameVersionId(), node.getType());
+          model.addResource((Resource) resourceNode);
+        }
+      }
+    }
+    if(model instanceof AllotedResource){
+      if(!flag) {
+        throw new IllegalArgumentException(String.format(
+            GeneratorConstants.GENERATOR_AAI_PROVIDING_SERVICE_MISSING,
+            model.getModelId()));
+      }
+    }
+  }
+
+  /*  private void vfWarnScenario(Map<String, String> idTypeStore, ToscaTemplate resourceTemplate) {
+    if (idTypeStore.size() == 0) {
+      //Log message for extra model file
+      log.warn(
+          "Additional tosca file found with resource version id : "
+              + resourceTemplate.getModelVersionId());
+    } else {
+      //Log message for missing model files.. Replace with logger statement
+      log.warn("Service-Resource Tosca mapping not found for  : "
+          + idTypeStore.keySet().toString());
+    }
+    return;
+  }*/
+
+  private void processVfModule(List<Resource> resources, List<Resource> currentToscaResources,
+                               ToscaTemplate resourceTemplate, Model model) {
+    log.debug("Inside Resource artifact generation for group/vfModule");
+    Collection<GroupDefinition> groups =
+        resourceTemplate.getTopology_template().getGroups().values();
+    Set<String> nodeNameListForGroups = new HashSet<>();
+    for (GroupDefinition gd : groups) {
+      Model group = Model.getModelFor(gd.getType());
+      if (group != null) {
+        group.populateModelIdentificationInformation(gd.getMetadata());
+        Map<String, String> properties = new HashMap<>();
+        Map<String, Object> groupProperties = gd.getProperties();
+        for (String key : groupProperties.keySet()) {
+          if (groupProperties.get(key) instanceof String) {
+            properties.put(key, groupProperties.get(key).toString());
+          }
+        }
+        group.populateModelIdentificationInformation(properties);
+        if (group instanceof VfModule && !currentToscaResources.contains(group)) {
+          if (gd.getMembers() != null && !gd.getMembers().isEmpty()) {
+            Set<String> groupMembers = new HashSet<>();
+            ((VfModule) group).setMembers(gd.getMembers());
+            nodeNameListForGroups.addAll(gd.getMembers());
+            groupMembers.addAll(gd.getMembers());
+
+            for (String member : groupMembers) {
+              NodeTemplate node =
+                  resourceTemplate.getTopology_template().getNode_templates().get(member);
+              if (node != null) {
+                Model resourceNode = null;
+                //L3-network inside vf-module to be generated as Widget a special handling.
+                if (node.getType().contains("org.openecomp.resource.vl")) {
+                  resourceNode = new L3NetworkWidget();
+                } else {
+                  resourceNode = Model.getModelFor(node.getType());
+                }
+                if (resourceNode != null) {
+                  if (!(resourceNode instanceof Resource)) {
+                    Widget widget = (Widget) resourceNode;
+                    widget.addKey(member);
+                    //Add the widget element encountered
+                    // in the resource tosca in the resource model
+                    boolean isAdded = group.addWidget(widget);
+
+                    //Add only widgets which are members of vf module and remove others
+                    if (isAdded) {
+                      model.addWidget(widget);
+                    }
+                  }
+                }
+              }
+            }
+          }
+
+          model.addResource((Resource) group); //Added group (VfModule) to the (VF) model
+          currentToscaResources
+              .add((Resource) group); //Adding the VfModule group to file specific resources
+          //Check if we have already encountered the same VfModule across all the artifacts
+          if (!resources.contains(group)) {
+            resources.add((Resource) group);
+          }
+        }
+      }
+    }
+
+    Iterator<Widget> iter = model.getWidgets().iterator();
+    while (iter.hasNext()) {
+      if (iter.next().allInstancesUsed(nodeNameListForGroups) || true) {
+        iter.remove();
+      }
+    }
+  }
+
+  private void processServiceTosca(Service service, Map<String, String> idTypeStore,Map<String,
+      String> resourcesVersion,ToscaTemplate serviceTosca, List<Resource> resources) {
+    Collection<NodeTemplate> coll =
+        serviceTosca.getTopology_template().getNode_templates().values();
+    log.debug("Inside Service Tosca ");
+    //Get the resource/widgets in the service according to the node-template types
+    for (NodeTemplate node : coll) {
+      Model model = Model.getModelFor(node.getType());
+      if (model != null) {
+        model.populateModelIdentificationInformation(node.getMetadata());
+        if (model instanceof Resource) {
+          String resourceVersion = node.getMetadata().get("version");
+          validateVersion(resourceVersion,model.getModelNameVersionId());
+          //Keeping track of resource types and
+          // their uuid for identification during resource tosca processing
+          idTypeStore.put(model.getModelNameVersionId(), node.getType());
+          resourcesVersion.put(model.getModelNameVersionId(),resourceVersion);
+          service.addResource((Resource) model);
+        } else {
+          service.addWidget((Widget) model);
+        }
+      }
+    }
+  }
+
+  /**
+   * Create Service artifact model from the AAI xml model string.
+   *
+   * @param serviceModel    Model of the service artifact
+   * @param aaiServiceModel AAI model as string
+   * @return Generated {@link Artifact} model for the service
+   */
+  private Artifact getServiceArtifact(Model serviceModel, String aaiServiceModel) {
+    Artifact artifact =
+        new Artifact(ArtifactType.MODEL_INVENTORY_PROFILE.name(), GroupType.DEPLOYMENT.name(),
+            GeneratorUtil.checkSum(aaiServiceModel.getBytes()),
+            GeneratorUtil.encode(aaiServiceModel.getBytes()));
+    String serviceArtifactName = getArtifactName(serviceModel);
+    String serviceArtifactLabel = getArtifactLabel(serviceModel);
+    artifact.setName(serviceArtifactName);
+    artifact.setLabel(serviceArtifactLabel);
+    String description = getArtifactDescription(serviceModel);
+    artifact.setDescription(description);
+    return artifact;
+  }
+
+  /**
+   * Create Resource artifact model from the AAI xml model string.
+   *
+   * @param resourceModel    Model of the resource artifact
+   * @param aaiResourceModel AAI model as string
+   * @return Generated {@link Artifact} model for the resource
+   */
+  private Artifact getResourceArtifact(Model resourceModel, String aaiResourceModel) {
+    Artifact artifact =
+        new Artifact(ArtifactType.MODEL_INVENTORY_PROFILE.name(), GroupType.DEPLOYMENT.name(),
+            GeneratorUtil.checkSum(aaiResourceModel.getBytes()),
+            GeneratorUtil.encode(aaiResourceModel.getBytes()));
+    String resourceArtifactName = getArtifactName(resourceModel);
+    String resourceArtifactLabel = getArtifactLabel(resourceModel);
+    artifact.setName(resourceArtifactName);
+    artifact.setLabel(resourceArtifactLabel);
+    String description = getArtifactDescription(resourceModel);
+    artifact.setDescription(description);
+    return artifact;
+  }
+
+  /**
+   * Method to generate the artifact name for an AAI model.
+   *
+   * @param model AAI artifact model
+   * @return Model artifact name
+   */
+  private String getArtifactName(Model model) {
+    StringBuilder artifactName = new StringBuilder(ArtifactType.AAI.name());
+    artifactName.append("-");
+
+    String truncatedArtifactName = "";
+    truncatedArtifactName = truncateName(model.getModelName());
+    artifactName.append(truncatedArtifactName);
+
+    artifactName.append("-");
+    artifactName.append(model.getModelType().name().toLowerCase());
+    artifactName.append("-");
+    artifactName.append(model.getModelVersion());
+
+    //artifactName.append(model.getModelVersion());
+    artifactName.append(".");
+    artifactName.append(GeneratorConstants.GENERATOR_AAI_GENERATED_ARTIFACT_EXTENSION);
+    return artifactName.toString();
+  }
+
+  private String getArtifactLabel(Model model) {
+    // String label = "";
+    StringBuilder artifactName = new StringBuilder(ArtifactType.AAI.name());
+    artifactName.append("-");
+    artifactName.append(model.getModelType().name().toLowerCase());
+    artifactName.append("-");
+    artifactName.append(hashCodeUuId(model.getModelNameVersionId()));
+    String label = (artifactName.toString()).replaceAll("[^a-zA-Z0-9 +]+", "-");
+    return label;
+  }
+
+  private int hashCodeUuId(String uuId) {
+    int hashcode = 0;
+    for (int i = 0; i < uuId.length(); i++) {
+      hashcode = 31 * hashcode + uuId.charAt(i);
+    }
+    return hashcode;
+  }
+
+
+  private String truncateName(String name) {
+    String truncatedName = name;
+    if (name.length() >= 200) {
+      truncatedName = name.substring(0, 199);
+    }
+    return truncatedName;
+  }
+
+  private String getArtifactDescription(Model model) {
+    String artifactDesc = model.getModelDescription();
+    if (model.getModelType().equals(ModelType.SERVICE)) {
+      artifactDesc = "AAI Service Model";
+    } else if (model.getModelType().equals(ModelType.RESOURCE)) {
+      artifactDesc = "AAI Resource Model";
+    }
+    return artifactDesc;
+  }
+
+  private void validateVersion(String version, String uuId) {
+    String versionRegex = "^[0-9]\\d*(\\.\\d+)$";
+    if (null == version  || version == "") {
+      throw new IllegalArgumentException(String
+          .format(GeneratorConstants.GENERATOR_AAI_ERROR_NULL_RESOURCE_VERSION_IN_SERVICE_TOSCA,
+               uuId));
+    } else if ( version.equals("0.0") || !(version.matches(versionRegex))) {
+      throw new IllegalArgumentException(String
+          .format(GeneratorConstants.GENERATOR_AAI_ERROR_INVALID_RESOURCE_VERSION_IN_SERVICE_TOSCA,
+               uuId));
+    }
+  }
+  /**
+   * Get the tosca java model from the tosca input artifact.
+   *
+   * @param input Input tosca file and its metadata information as {@link Artifact} object
+   * @return Translated {@link ToscaTemplate tosca} object
+   */
+
+  private ToscaTemplate getToscaModel(Artifact input, String serviceVersion)
+      throws SecurityException {
+    byte[] decodedInput = GeneratorUtil.decoder(input.getPayload());
+    String checksum = GeneratorUtil.checkSum(decodedInput);
+    ToscaTemplate tosca = null;
+    if (checksum.equalsIgnoreCase(input.getChecksum())) {
+      try {
+        log.debug("Input yaml name " + input.getName() + "payload " + new String(decodedInput));
+        tosca = GeneratorUtil.translateTosca(new String(decodedInput), ToscaTemplate.class);
+        tosca.getMetadata().put("version", serviceVersion);
+        return tosca;
+      } catch (Exception exception) {
+        throw new IllegalArgumentException(
+            String.format(GeneratorConstants.GENERATOR_AAI_ERROR_INVALID_TOSCA, input.getName()), exception);
+      }
+    } else {
+      throw new SecurityException(GeneratorConstants.GENERATOR_AAI_ERROR_CHECKSUM_MISMATCH);
+    }
+  }
+
+  private void validateTosca(ToscaTemplate tosca, Artifact input) {
+    log.debug("Validating tosca for Artifact: " + input.getName());
+    if (tosca.getMetadata().containsKey("invariantUUID")) {
+      if (tosca.getMetadata().get("invariantUUID") == null
+          || tosca.getMetadata().get("invariantUUID") == "") {
+        throw new IllegalArgumentException(String
+            .format(GeneratorConstants.GENERATOR_AAI_ERROR_MANDATORY_METADATA_DEFINITION,
+                "invariantUUID",
+                input.getName()));
+      } else if (tosca.getMetadata().get("invariantUUID").length() != GeneratorConstants.ID_LENGTH) {
+        throw new IllegalArgumentException(String.format(
+            GeneratorConstants.GENERATOR_AAI_ERROR_INVALID_ID, "invariantUUID", input.getName()));
+      }
+    }
+
+    if (tosca.getMetadata().containsKey("UUID")) {
+      if (tosca.getMetadata().get("UUID") == null || tosca.getMetadata().get("UUID") == "") {
+        throw new IllegalArgumentException(String
+            .format(GeneratorConstants.GENERATOR_AAI_ERROR_MANDATORY_METADATA_DEFINITION, "UUID",
+                input.getName()));
+      } else if (tosca.getMetadata().get("UUID").length() != GeneratorConstants.ID_LENGTH) {
+        throw new IllegalArgumentException(String
+            .format(GeneratorConstants.GENERATOR_AAI_ERROR_INVALID_ID, "UUID", input.getName()));
+      }
+
+    }
+    if (tosca.getMetadata().containsKey("name")) {
+      if (tosca.getMetadata().get("name") == null || tosca.getMetadata().get("name") == "") {
+        throw new IllegalArgumentException(String
+            .format(GeneratorConstants.GENERATOR_AAI_ERROR_MANDATORY_METADATA_DEFINITION, "name",
+                input.getName()));
+      }
+    }
+
+    //Validate VFmodule
+    if (tosca.getTopology_template() != null && tosca.getTopology_template().getGroups() != null) {
+      Collection<GroupDefinition> groups = tosca.getTopology_template().getGroups().values();
+      for (GroupDefinition gd : groups) {
+        Model group = Model.getModelFor(gd.getType());
+        if (group != null && group instanceof VfModule) {
+          if (gd.getMetadata().containsKey("vfModuleModelName")
+              && gd.getMetadata().get("vfModuleModelName") == null) {
+            throw new IllegalArgumentException(String
+                .format(GeneratorConstants.GENERATOR_AAI_ERROR_MANDATORY_METADATA_DEFINITION,
+                    "vfModuleModelName",
+                    input.getName()));
+          }
+          if (gd.getMetadata().containsKey("vfModuleModelInvariantUUID")
+              && gd.getMetadata().get("vfModuleModelInvariantUUID") == null) {
+            throw new IllegalArgumentException(String
+                .format(GeneratorConstants.GENERATOR_AAI_ERROR_MANDATORY_METADATA_DEFINITION,
+                    "vfModuleModelInvariantUUID", input.getName()));
+          } else if (gd.getMetadata().get("vfModuleModelInvariantUUID").length() != GeneratorConstants.ID_LENGTH) {
+            throw new IllegalArgumentException(String.format(
+                 GeneratorConstants.GENERATOR_AAI_ERROR_INVALID_ID, "vfModuleModelInvariantUUID",
+                 input.getName()));
+          }
+
+          if (gd.getMetadata().containsKey("vfModuleModelUUID")
+              && gd.getMetadata().get("vfModuleModelUUID") == null) {
+            throw new IllegalArgumentException(String
+                .format(GeneratorConstants.GENERATOR_AAI_ERROR_MANDATORY_METADATA_DEFINITION,
+                    "vfModuleModelUUID",
+                    input.getName()));
+          } else if (gd.getMetadata().get("vfModuleModelUUID").length() != GeneratorConstants.ID_LENGTH) {
+            throw new IllegalArgumentException(String.format(
+                GeneratorConstants.GENERATOR_AAI_ERROR_INVALID_ID, "vfModuleModelUUID",
+                input.getName()));
+          }
+          if (gd.getMetadata().containsKey("vfModuleModelVersion")
+              && gd.getMetadata().get("vfModuleModelVersion") == null) {
+            throw new IllegalArgumentException(String
+                .format(GeneratorConstants.GENERATOR_AAI_ERROR_MANDATORY_METADATA_DEFINITION,
+                    "vfModuleModelVersion",
+                    input.getName()));
+          }
+        }
+      }
+    }
+  }
+
+  /**
+   * Identify the service tosca artifact from the list of translated tosca inputs.
+   *
+   * @param input List of translated {@link ToscaTemplate tosca} object models
+   * @return Identified service {@link ToscaTemplate tosca}
+   */
+  private ToscaTemplate getServiceTosca(List<ToscaTemplate> input) {
+    Iterator<ToscaTemplate> iter = input.iterator();
+    while (iter.hasNext()) {
+      ToscaTemplate tosca = iter.next();
+      if (tosca.isService()) {
+        iter.remove();
+        return tosca;
+      }
+    }
+    return null;
+  }
+
+  private void initWidgetConfiguration() throws IOException {
+    log.debug("Getting Widget Configuration");
+    String configLocation = System.getProperty("artifactgenerator.config");
+    Properties properties = null;
+    if (configLocation != null) {
+      File file = new File(configLocation);
+      if (file.exists()) {
+        properties = new Properties();
+        properties.load(new FileInputStream(file));
+        WidgetConfigurationUtil.setConfig(properties);
+      } else {
+        throw new IllegalArgumentException(String.format(
+            GeneratorConstants.GENERATOR_AAI_CONFIGFILE_NOT_FOUND,
+            configLocation));
+      }
+    } else {
+      throw new IllegalArgumentException(GeneratorConstants.GENERATOR_AAI_CONFIGLOCATION_NOT_FOUND);
+    }
+  }
+
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/main/java/org/onap/sdc/generator/aai/AaiModelGeneratorImpl.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/main/java/org/onap/sdc/generator/aai/AaiModelGeneratorImpl.java
new file mode 100644
index 0000000..4a4f9f0
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/main/java/org/onap/sdc/generator/aai/AaiModelGeneratorImpl.java
@@ -0,0 +1,278 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.aai;
+
+import org.openecomp.sdc.logging.api.Logger;
+import org.openecomp.sdc.logging.api.LoggerFactory;
+import org.onap.sdc.generator.aai.model.Resource;
+import org.onap.sdc.generator.aai.model.Service;
+import org.onap.sdc.generator.aai.model.Widget;
+import org.onap.sdc.generator.aai.xml.Model;
+import org.onap.sdc.generator.aai.xml.ModelElement;
+import org.onap.sdc.generator.aai.xml.ModelElements;
+import org.onap.sdc.generator.aai.xml.ModelVer;
+import org.onap.sdc.generator.aai.xml.ModelVers;
+import org.onap.sdc.generator.aai.xml.Relationship;
+import org.onap.sdc.generator.aai.xml.RelationshipData;
+import org.onap.sdc.generator.aai.xml.RelationshipList;
+import org.onap.sdc.generator.logging.annotations.Metrics;
+import org.w3c.dom.DOMException;
+
+import java.io.StringWriter;
+import java.util.List;
+import java.util.Set;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Marshaller;
+
+/**
+ * Implementation of the {@link AaiModelGenerator} which generates the XML models from the
+ * Service/Resource/Widget java models.
+ */
+public class AaiModelGeneratorImpl implements AaiModelGenerator {
+  private static Logger log = LoggerFactory.getLogger(AaiModelGeneratorImpl.class.getName());
+
+  /**
+   * Method to generate the AAI model for a Service.
+   *
+   * @param service Java object model representing an AAI {@link Service} model
+   * @return XML representation of the service model in String format
+   */
+  @Override
+  @Metrics
+  public String generateModelFor(Service service) {
+    //Create a JAXB Model for AAI service model
+    Model aaiServiceModel = new Model();
+    log.debug("Generating Model for Service with ModelName: " + service.getModelName());
+    // after new model
+    aaiServiceModel.setModelInvariantId(service.getModelId());
+    aaiServiceModel.setModelVers(new ModelVers());
+    ModelVer modelVer = new ModelVer();
+    modelVer.setModelDescription(service.getModelDescription());
+    modelVer.setModelName(service.getModelName());
+    modelVer.setModelVersion(service.getModelVersion());
+    modelVer.setModelVersionId(service.getModelNameVersionId());
+    modelVer.setModelElements(new ModelElements());
+    ModelElements modelElements = modelVer.getModelElements();
+    //Populate basic model details
+    aaiServiceModel
+       .setModelType(service.getModelType().name().toLowerCase()); //Using enum name as model type
+    List<ModelElement> modelElementList = modelElements.getModelElement();
+
+    //Add service base widget model element
+    ModelElement serviceWidgetModelRelationshipElement =
+        createRelationshipModelElement(getNewDataDelFlagValue(service.getDeleteFlag()),
+            service.getWidgetId(),service.getWidgetInvariantId());
+    modelElementList.add(serviceWidgetModelRelationshipElement);
+
+    //Add the resource model elements
+    ModelElements serviceModelElements = serviceWidgetModelRelationshipElement.getModelElements();
+    List<ModelElement> serviceModelElementList = serviceModelElements.getModelElement();
+    Set<Resource> serviceResources = service.getResources();
+    if (serviceResources != null && !serviceResources.isEmpty()) {
+      for (Resource resourceModel : serviceResources) {
+        ModelElement aaiResourceModelElement =
+            createRelationshipModelElement(getNewDataDelFlagValue(resourceModel.getDeleteFlag()),
+                resourceModel.getModelNameVersionId(),resourceModel.getModelId());
+        serviceModelElementList.add(aaiResourceModelElement);
+      }
+    }
+
+    //Add the widget model elements
+    Set<Widget> serviceWidgets = service.getWidgets();
+    if (serviceWidgets != null && !serviceWidgets.isEmpty()) {
+      for (Widget widgetModel : serviceWidgets) {
+        ModelElement widgetModelElement =
+            createRelationshipModelElement(getNewDataDelFlagValue(widgetModel.getDeleteFlag()),
+                widgetModel.getId(),widgetModel.getWidgetId());
+        serviceModelElementList.add(widgetModelElement);
+      }
+    }
+    ModelVers modelVers = aaiServiceModel.getModelVers();
+    List<ModelVer> modelVerList = modelVers.getModelVer();
+    modelVerList.add(modelVer);
+    return getModelAsString(aaiServiceModel);
+  }
+
+  /**
+   * Method to generate the AAI model for a Resource.
+   *
+   * @param resource Java object model representing an AAI {@link Resource} model
+   * @return XML representation of the resource model in String format
+   */
+  @Override
+  @Metrics
+  public String generateModelFor(Resource resource) {
+    //Create a JAXB Model for AAI Resource model
+    Model aaiResourceModel = new Model();
+    log.debug("Generating Model for Resource with ModelName: " + resource.getModelName());
+    aaiResourceModel.setModelInvariantId(resource.getModelId());
+    aaiResourceModel.setModelVers(new ModelVers());
+    ModelVer modelVer = new ModelVer();
+    modelVer.setModelDescription(resource.getModelDescription());
+    modelVer.setModelName(resource.getModelName());
+    modelVer.setModelVersion(resource.getModelVersion());
+    modelVer.setModelVersionId(resource.getModelNameVersionId());
+    modelVer.setModelElements(new ModelElements());
+    ModelElements modelElements = modelVer.getModelElements();
+    aaiResourceModel
+        .setModelType(resource.getModelType().name().toLowerCase()); //Using enum name as model type
+    List<ModelElement> modelElementList = modelElements.getModelElement();
+
+    //Add resource base widget model element
+    ModelElement resourceWidgetModelRelationshipElement =
+        createRelationshipModelElement(getNewDataDelFlagValue(resource.getDeleteFlag()),
+            resource.getWidgetId(),resource.getWidgetInvariantId());
+    modelElementList.add(resourceWidgetModelRelationshipElement);
+
+    //Add the child resources to the base widget model element list
+    ModelElements baseResourceWidgetModelElements =
+        resourceWidgetModelRelationshipElement.getModelElements();
+    List<ModelElement> baseResourceWidgetModelElementList =
+        baseResourceWidgetModelElements.getModelElement();
+    Set<Resource> childResources = resource.getResources();
+    if (childResources != null && !childResources.isEmpty()) {
+      for (Resource childResourceModel : childResources) {
+        ModelElement aaiChildResourceModelElement = createRelationshipModelElement(
+            getNewDataDelFlagValue(childResourceModel.getDeleteFlag()),
+            childResourceModel.getModelNameVersionId(),childResourceModel.getModelId());
+        baseResourceWidgetModelElementList.add(aaiChildResourceModelElement);
+      }
+    }
+    //Add resource widgets/resources to the resource widget model relationship element
+    Set<Widget> resourceWidgets = resource.getWidgets();
+    if (resourceWidgets != null && !resourceWidgets.isEmpty()) {
+      generateWidgetChildren(resourceWidgetModelRelationshipElement, resourceWidgets);
+    }
+
+    ModelVers modelVers = aaiResourceModel.getModelVers();
+    List<ModelVer> modelVerList = modelVers.getModelVer();
+    modelVerList.add(modelVer);
+    return getModelAsString(aaiResourceModel);
+
+  }
+
+  /**
+   * Method to create the <model-element></model-element> holding the relationship value for a
+   * resource/widget
+   * model.
+   *
+   * @param newDataDelFlag    Value of the <new-data-del-flag></new-data-del-flag> attribute for
+   *                          a widget/resource in
+   *                          the model xml
+   * @param relationshipValue Value of the <relationship-value></relationship-value> attribute
+   *                          for the widget/resource in
+   *                          the model xml
+   * @return Java object representation for the <model-element></model-element> holding the
+   relationship
+   */
+  private ModelElement createRelationshipModelElement(String newDataDelFlag,
+                                                      String modelVersionId,String
+                                                          modelInvariantId) {
+    ModelElement relationshipModelElement = new ModelElement();
+    relationshipModelElement.setNewDataDelFlag(newDataDelFlag); //Set new-data-del-flag value
+    relationshipModelElement.setCardinality("unbounded");
+    RelationshipList relationShipList = new RelationshipList();
+    final List<Relationship> relationships = relationShipList.getRelationship();
+    Relationship relationship = new Relationship();
+    relationship.setRelatedTo("model-ver");
+    List<RelationshipData> relationshipDataList = relationship.getRelationshipData();
+
+    RelationshipData modelVersionRelationshipData = new RelationshipData();
+    modelVersionRelationshipData.setRelationshipKey("model-ver.model-version-id");
+    modelVersionRelationshipData.setRelationshipValue(
+        modelVersionId);  //Set the widget/resource name-version-uuid as value
+    relationshipDataList.add(modelVersionRelationshipData);
+    RelationshipData modelInvariantRelationshipData = new RelationshipData();
+    modelInvariantRelationshipData.setRelationshipKey("model.model-invariant-id");
+    modelInvariantRelationshipData.setRelationshipValue(
+        modelInvariantId);
+    relationshipDataList.add(modelInvariantRelationshipData);
+    relationships.add(relationship);
+    relationshipModelElement.setRelationshipList(relationShipList);
+    relationshipModelElement.setModelElements(new ModelElements());
+    return relationshipModelElement;
+  }
+
+  /**
+   * Method to create the child model elements of the widget. Handles the generation of recursive
+   * child widget elements (if any)
+   *
+   * @param parent            Reference to the parent widget model element
+   * @param widgetChildrenSet Set of children obtained from the tosca/widget definition
+   */
+  private void generateWidgetChildren(ModelElement parent, Set<Widget> widgetChildrenSet) {
+    for (Widget widget : widgetChildrenSet) {
+      Set<Widget> widgetSubChildren = widget.getWidgets();
+      if (widgetSubChildren != null && !widgetSubChildren.isEmpty()) {
+        ModelElement widgetChildRelationshipElement =
+            createRelationshipModelElement(getNewDataDelFlagValue(widget.getDeleteFlag()),
+                widget.getId(),widget.getWidgetId());
+        //Recursive call for getting the children of widgets (if any)
+        generateWidgetChildren(widgetChildRelationshipElement, widgetSubChildren);
+        parent.getModelElements().getModelElement().add(widgetChildRelationshipElement);
+      } else {
+        ModelElement widgetChildRelationshipElement =
+            createRelationshipModelElement(getNewDataDelFlagValue(widget.getDeleteFlag()),
+                widget.getId(),widget.getWidgetId()
+            );
+        parent.getModelElements().getModelElement().add(widgetChildRelationshipElement);
+      }
+    }
+  }
+
+  /**
+   * Converts the data delete flag value from boolean to String as per AAI model.
+   *
+   * @param delFlag Boolean value as true/false from the annotation
+   * @return Converted value to a flag as per AAI model
+   */
+  private String getNewDataDelFlagValue(boolean delFlag) {
+    if (delFlag) {
+      return "T";
+    } else {
+      return "F";
+    }
+  }
+
+  /**
+   * JAXB marshalling helper method to convert the Java object model to XML String.
+   *
+   * @param model Java Object model of a service/widget/resource
+   * @return XML representation of the Java model in String format
+   */
+  private String getModelAsString(Model model) {
+    JAXBContext jaxbContext;
+    StringWriter modelStringWriter = new StringWriter();
+    try {
+      jaxbContext = JAXBContext.newInstance(Model.class);
+      Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
+      jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
+      jaxbMarshaller.setProperty(Marshaller.JAXB_ENCODING, "US-ASCII");
+      jaxbMarshaller.setProperty(Marshaller.JAXB_FRAGMENT, Boolean.TRUE);
+      jaxbMarshaller.marshal(model, modelStringWriter);
+    } catch (JAXBException jaxbException) {
+      throw new DOMException(DOMException.SYNTAX_ERR, jaxbException.getMessage());
+    }
+
+    return modelStringWriter.toString();
+  }
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/main/java/org/onap/sdc/generator/impl/ArtifactGenerationServiceImpl.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/main/java/org/onap/sdc/generator/impl/ArtifactGenerationServiceImpl.java
new file mode 100644
index 0000000..4297547
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/main/java/org/onap/sdc/generator/impl/ArtifactGenerationServiceImpl.java
@@ -0,0 +1,87 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.impl;
+
+import static org.onap.sdc.generator.util.ArtifactGeneratorUtil.logError;
+
+import org.onap.sdc.generator.data.GeneratorConstants;
+import org.onap.sdc.generator.util.ArtifactGeneratorUtil;
+import org.openecomp.sdc.logging.api.Logger;
+import org.openecomp.sdc.logging.api.LoggerFactory;
+import org.onap.sdc.generator.GeneratorManager;
+import org.onap.sdc.generator.GeneratorTask;
+import org.onap.sdc.generator.data.Artifact;
+import org.onap.sdc.generator.data.GenerationData;
+import org.onap.sdc.generator.intf.ArtifactGenerator;
+import org.onap.sdc.generator.service.ArtifactGenerationService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ForkJoinPool;
+
+/**
+ * Artifact Generation Service implementation class.
+ */
+public class ArtifactGenerationServiceImpl implements ArtifactGenerationService {
+
+  private static Logger log =
+      LoggerFactory.getLogger(ArtifactGenerationServiceImpl.class.getName());
+
+  /**
+   * Artifact generator method.
+   *
+   * @param input                   List of input files as {@link Artifact} models
+   * @param overridingConfiguration Configuration data for invoking generators
+   * @param additionalParams Additional Parameters
+   * @return Generated artifacts/Error data in a {@link GenerationData} object
+   */
+  @Override
+  public GenerationData generateArtifact(List<Artifact> input, String overridingConfiguration,
+                                         Map<String, String> additionalParams) {
+    try {
+      //Initialize artifact generation logging context
+      ArtifactGeneratorUtil.initializeLoggingContext();
+
+      List<ArtifactGenerator> generatorsToBeUsed =
+          GeneratorManager.getActiveArtifactGenerators(overridingConfiguration);
+      if (generatorsToBeUsed.size() > 0) {
+        return ForkJoinPool.commonPool().invoke(new GeneratorTask(generatorsToBeUsed, input,
+            additionalParams));
+      } else {
+        return new GenerationData();
+      }
+    } catch (IllegalArgumentException iae) {
+      //Invalid client configuration
+      ArtifactGeneratorUtil
+          .logError(GeneratorConstants.GENERATOR_ERROR_ARTIFACT_GENERATION_FAILED, iae);
+      GenerationData errorData = new GenerationData();
+      errorData.add(GeneratorConstants.GENERATOR_INVOCATION_ERROR_CODE, iae.getMessage());
+      return errorData;
+    } catch (Exception ex) {
+      ArtifactGeneratorUtil
+          .logError(GeneratorConstants.GENERATOR_ERROR_ARTIFACT_GENERATION_FAILED, ex);
+      GenerationData errorData = new GenerationData();
+      errorData.add(GeneratorConstants.GENERATOR_INVOCATION_ERROR_CODE,
+                    GeneratorConstants.GENERATOR_ERROR_ARTIFACT_GENERATION_FAILED);
+      return errorData;
+    }
+  }
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/main/java/org/onap/sdc/generator/util/ArtifactGeneratorUtil.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/main/java/org/onap/sdc/generator/util/ArtifactGeneratorUtil.java
new file mode 100644
index 0000000..8e6e2c0
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/main/java/org/onap/sdc/generator/util/ArtifactGeneratorUtil.java
@@ -0,0 +1,298 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator.util;
+
+import static org.onap.sdc.generator.data.GeneratorConstants.BEGIN_TIMESTAMP;
+import static org.onap.sdc.generator.data.GeneratorConstants.BE_FQDN;
+import static org.onap.sdc.generator.data.GeneratorConstants.CATEGORY_LOG_LEVEL;
+import static org.onap.sdc.generator.data.GeneratorConstants.CLIENT_IP;
+import static org.onap.sdc.generator.data.GeneratorConstants.ELAPSED_TIME;
+import static org.onap.sdc.generator.data.GeneratorConstants.END_TIMESTAMP;
+import static org.onap.sdc.generator.data.GeneratorConstants.ERROR_CATEGORY;
+import static org.onap.sdc.generator.data.GeneratorConstants.ERROR_CODE;
+import static org.onap.sdc.generator.data.GeneratorConstants.ERROR_DESCRIPTION;
+import static org.onap.sdc.generator.data.GeneratorConstants.GENERATOR_AAI_CONFIGFILE_NOT_FOUND;
+import static org.onap.sdc.generator.data.GeneratorConstants.GENERATOR_AAI_CONFIGLOCATION_NOT_FOUND;
+import static org.onap.sdc.generator.data.GeneratorConstants.GENERATOR_AAI_CONFIGLPROP_NOT_FOUND;
+import static org.onap.sdc.generator.data.GeneratorConstants.GENERATOR_AAI_PROVIDING_SERVICE_METADATA_MISSING;
+import static org.onap.sdc.generator.data.GeneratorConstants.GENERATOR_AAI_PROVIDING_SERVICE_MISSING;
+import static org.onap.sdc.generator.data.GeneratorConstants.GENERATOR_AAI_ERROR_INVALID_ID;
+import static org.onap.sdc.generator.data.GeneratorConstants.GENERATOR_AAI_ERROR_INVALID_RESOURCE_VERSION_IN_SERVICE_TOSCA;
+import static org.onap.sdc.generator.data.GeneratorConstants.GENERATOR_AAI_ERROR_INVALID_TOSCA_MSG;
+import static org.onap.sdc.generator.data.GeneratorConstants.GENERATOR_AAI_ERROR_MANDATORY_METADATA_DEFINITION_MSG;
+import static org.onap.sdc.generator.data.GeneratorConstants.GENERATOR_AAI_ERROR_MISSING_RESOURCE_TOSCA;
+import static org.onap.sdc.generator.data.GeneratorConstants.GENERATOR_AAI_ERROR_MISSING_SERVICE_TOSCA_MSG;
+import static org.onap.sdc.generator.data.GeneratorConstants.GENERATOR_AAI_ERROR_MISSING_SERVICE_VERSION;
+import static org.onap.sdc.generator.data.GeneratorConstants.GENERATOR_AAI_ERROR_NULL_RESOURCE_VERSION_IN_SERVICE_TOSCA;
+import static org.onap.sdc.generator.data.GeneratorConstants.GENERATOR_AAI_INVALID_SERVICE_VERSION;
+import static org.onap.sdc.generator.data.GeneratorConstants.GENERATOR_ERROR_ARTIFACT_GENERATION_FAILED_MSG;
+import static org.onap.sdc.generator.data.GeneratorConstants.GENERATOR_ERROR_INVALID_CLIENT_CONFIGURATION_MSG;
+import static org.onap.sdc.generator.data.GeneratorConstants.GENERATOR_PARTNER_NAME;
+import static org.onap.sdc.generator.data.GeneratorConstants.INSTANCE_UUID;
+import static org.onap.sdc.generator.data.GeneratorConstants.LOCAL_ADDR;
+import static org.onap.sdc.generator.data.GeneratorConstants.MDC_SDC_INSTANCE_UUID;
+import static org.onap.sdc.generator.data.GeneratorConstants.PARTNER_NAME;
+import static org.onap.sdc.generator.data.GeneratorConstants.REMOTE_HOST;
+import static org.onap.sdc.generator.data.GeneratorConstants.REQUEST_ID;
+import static org.onap.sdc.generator.data.GeneratorConstants.RESPONSE_CODE;
+import static org.onap.sdc.generator.data.GeneratorConstants.RESPONSE_DESCRIPTION;
+import static org.onap.sdc.generator.data.GeneratorConstants.SERVICE_INSTANCE_ID;
+import static org.onap.sdc.generator.data.GeneratorConstants.SERVICE_METRIC_BEGIN_TIMESTAMP;
+import static org.onap.sdc.generator.data.GeneratorConstants.SERVICE_NAME;
+import static org.onap.sdc.generator.data.GeneratorConstants.STATUS_CODE;
+import static org.onap.sdc.generator.data.GeneratorConstants.TARGET_ENTITY;
+import static org.onap.sdc.generator.data.GeneratorConstants.TARGET_SERVICE_NAME;
+import static org.onap.sdc.generator.logging.ArtifactGeneratorLogResponseCode.INTERNAL_SERVER_ERROR;
+import static org.onap.sdc.generator.logging.ArtifactGeneratorLogResponseCode.INVALID_CLIENT_CONFIGURATION;
+import static org.onap.sdc.generator.logging.ArtifactGeneratorLogResponseCode.INVALID_ID_VALUE;
+import static org.onap.sdc.generator.logging.ArtifactGeneratorLogResponseCode.INVALID_RESOURCE_VERSION;
+import static org.onap.sdc.generator.logging.ArtifactGeneratorLogResponseCode.INVALID_SERVICE_VERSION;
+import static org.onap.sdc.generator.logging.ArtifactGeneratorLogResponseCode.INVALID_TOSCA_YAML;
+import static org.onap.sdc.generator.logging.ArtifactGeneratorLogResponseCode.MANDATORY_ATTRIBUTE_MISSING;
+import static org.onap.sdc.generator.logging.ArtifactGeneratorLogResponseCode.MISSING_CONFIG_PROPERTIES_FILE;
+import static org.onap.sdc.generator.logging.ArtifactGeneratorLogResponseCode.MISSING_PRO_SERVICE;
+import static org.onap.sdc.generator.logging.ArtifactGeneratorLogResponseCode.MISSING_PRO_SERVICE_METADATA;
+import static org.onap.sdc.generator.logging.ArtifactGeneratorLogResponseCode.MISSING_RESOURCE_VERSION;
+import static org.onap.sdc.generator.logging.ArtifactGeneratorLogResponseCode.MISSING_SERVICE_VERSION;
+import static org.onap.sdc.generator.logging.ArtifactGeneratorLogResponseCode.MISSING_SYSTME_PROPERY_CONFIGURATION;
+import static org.onap.sdc.generator.logging.ArtifactGeneratorLogResponseCode.MISSING_WIDGET_CONFIGURATION;
+import static org.onap.sdc.generator.logging.ArtifactGeneratorLogResponseCode.RESOURCE_TOSCA_MISSING;
+import static org.onap.sdc.generator.logging.ArtifactGeneratorLogResponseCode.SERVICE_TOSCA_MISSING;
+import static org.onap.sdc.generator.logging.ArtifactGeneratorLogResponseCode.UNABLE_TO_GENERATE_ARTIFACT;
+
+import org.openecomp.sdc.logging.api.Logger;
+import org.openecomp.sdc.logging.api.LoggerFactory;
+import org.onap.sdc.generator.data.Artifact;
+import org.onap.sdc.generator.logging.ArtifactGeneratorLogResponseCode;
+import org.onap.sdc.generator.logging.CategoryLogLevel;
+import org.onap.sdc.generator.logging.StatusCode;
+import org.slf4j.MDC;
+
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.TimeZone;
+
+
+public class ArtifactGeneratorUtil {
+
+  private static Logger log = LoggerFactory.getLogger(ArtifactGeneratorUtil.class.getName());
+  private static final String LOG_UTC_DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ss.SSS";
+
+  /**
+   * Artifact Generator Error logging Helper.
+   * @param errorDescription Description of the error
+   */
+  public static void logError(String errorDescription) {
+    logError(errorDescription, "");
+  }
+
+  /**
+   * Artifact Generator Error logging Helper.
+   * @param errorDescription Description of the error
+   * @param ex Exception object for stackstrace
+   */
+  public static void logError(String errorDescription, Exception ex) {
+    StringWriter sw = new StringWriter();
+    ex.printStackTrace(new PrintWriter(sw));
+    String detailMessage = sw.toString();
+    logError(CategoryLogLevel.ERROR, errorDescription, detailMessage);
+  }
+
+  /**
+   * Artifact Generator Error logging Helper.
+   * @param errorDescription Description of the error
+   * @param detailMessage Detailed Error message
+   */
+  public static void logError(String errorDescription, String detailMessage) {
+    logError(CategoryLogLevel.ERROR, errorDescription, detailMessage);
+  }
+
+  /**
+   * Artifact Generator Error logging Helper.
+   * @param errorCategory    ERROR
+   * @param errorDescription Description of the error
+   * @param detailMessage Detailed Error message
+   */
+  public static void logError(CategoryLogLevel errorCategory,
+                              String errorDescription, String detailMessage) {
+    MDC.put(ERROR_CATEGORY, errorCategory.name());
+    MDC.put(STATUS_CODE, StatusCode.ERROR.name());
+    artifactGeneratorErrorLogProcessor(errorCategory,errorDescription);
+    log.error(detailMessage);
+    resetLoggingContext();
+  }
+
+  /**
+   * Initialize generic MDC attributes for logging the current request.
+   *
+   */
+  public static void initializeLoggingContext() {
+    log.debug("Initializing generic logging context ");
+    MDC.put(PARTNER_NAME, GENERATOR_PARTNER_NAME);
+    MDC.put(SERVICE_METRIC_BEGIN_TIMESTAMP, String.valueOf(System.currentTimeMillis()));
+    MDC.put(INSTANCE_UUID, MDC_SDC_INSTANCE_UUID);
+    MDC.put(STATUS_CODE, StatusCode.COMPLETE.name());
+    MDC.put(CLIENT_IP, MDC.get(REMOTE_HOST));
+
+    try {
+      InetAddress ip = InetAddress.getLocalHost();
+      MDC.put(LOCAL_ADDR, ip.getHostAddress());
+      String hostname = ip.getHostName();
+      MDC.put(BE_FQDN, hostname);
+    } catch (UnknownHostException uhe) {
+      log.error("Failed to get server FQDN", uhe);
+    }
+
+    if (log.isDebugEnabled()) {
+      MDC.put(CATEGORY_LOG_LEVEL, CategoryLogLevel.DEBUG.name());
+    } else if (log.isInfoEnabled()) {
+      MDC.put(CATEGORY_LOG_LEVEL, CategoryLogLevel.INFO.name());
+    } else if (log.isWarnEnabled()) {
+      MDC.put(CATEGORY_LOG_LEVEL, CategoryLogLevel.WARN.name());
+    } else if (log.isErrorEnabled()) {
+      MDC.put(CATEGORY_LOG_LEVEL, CategoryLogLevel.ERROR.name());
+    }
+  }
+
+  /**
+   * Initialize MDC for logging the current artifact request.
+   *
+   * @param artifact Current artifact
+   */
+  public static void initializeArtifactLoggingContext(Artifact artifact) {
+    log.debug("Initializing logging context for " + artifact.getLabel());
+    MDC.put(REQUEST_ID, artifact.getLabel());
+    MDC.put(SERVICE_NAME, artifact.getType());
+    MDC.put(SERVICE_INSTANCE_ID, artifact.getName());
+  }
+
+  /**
+   * Reset the logging context after a Audit/Metrics logging operation.
+   */
+  public static void resetLoggingContext() {
+    MDC.remove(ERROR_CATEGORY);
+    MDC.remove(ERROR_CODE);
+    MDC.remove(STATUS_CODE);
+    MDC.remove(ERROR_DESCRIPTION);
+    MDC.remove(BEGIN_TIMESTAMP);
+    MDC.remove(END_TIMESTAMP);
+    MDC.remove(ELAPSED_TIME);
+    MDC.put(STATUS_CODE, StatusCode.COMPLETE.name());
+    MDC.remove(RESPONSE_CODE);
+    MDC.remove(RESPONSE_DESCRIPTION);
+    MDC.remove(TARGET_ENTITY);
+    MDC.remove(TARGET_SERVICE_NAME);
+  }
+
+  /**
+   * Convert timestamp to UTC format date string.
+   *
+   * @param timeStamp UTC timestamp to be converted to the UTC Date format.
+   * @return UTC formatted Date string from timestamp.
+   */
+  public static String getLogUtcDateStringFromTimestamp(Date timeStamp) {
+    DateFormat df = new SimpleDateFormat(LOG_UTC_DATE_FORMAT);
+    df.setTimeZone(TimeZone.getTimeZone("GMT"));
+    return df.format(timeStamp);
+  }
+
+  /**
+   * Artifact Gnenerator Error logging Helper.
+   *
+   * @param errorCategory    WARN or ERROR.
+   * @param errorDescription Description of the error.
+   */
+  public static void artifactGeneratorErrorLogProcessor(CategoryLogLevel errorCategory,
+                                                        String errorDescription) {
+    MDC.put(ERROR_CATEGORY, errorCategory.name());
+    if (errorDescription != null) {
+      String errorType = "";
+      switch (errorCategory) {
+        case WARN:
+          errorType = "W";
+          break;
+        case ERROR:
+          errorType = "E";
+          break;
+        case FATAL:
+          errorType = "F";
+          break;
+        default:
+          break;
+      }
+      MDC.put(ERROR_CODE, getLogResponseCode(errorDescription) + errorType);
+    }
+    MDC.put(ERROR_DESCRIPTION, errorDescription);
+  }
+
+
+  /**
+   *
+   * @return Audit log code corresponding to the Artifact Generator exception.
+   */
+  public static int getLogResponseCode(String errorDescription) {
+    ArtifactGeneratorLogResponseCode responseCode = INTERNAL_SERVER_ERROR;
+    if (errorDescription.contains(GENERATOR_AAI_ERROR_MANDATORY_METADATA_DEFINITION_MSG)) {
+      responseCode = MANDATORY_ATTRIBUTE_MISSING;
+    } else if (errorDescription.contains(GENERATOR_AAI_ERROR_INVALID_TOSCA_MSG)) {
+      responseCode = INVALID_TOSCA_YAML;
+    } else if (errorDescription.contains(GENERATOR_AAI_ERROR_MISSING_SERVICE_TOSCA_MSG)) {
+      responseCode = SERVICE_TOSCA_MISSING;
+    } else if (errorDescription.contains(GENERATOR_ERROR_INVALID_CLIENT_CONFIGURATION_MSG)) {
+      responseCode = INVALID_CLIENT_CONFIGURATION;
+    } else if (errorDescription.contains(GENERATOR_ERROR_ARTIFACT_GENERATION_FAILED_MSG)) {
+      responseCode = UNABLE_TO_GENERATE_ARTIFACT;
+    } else if (errorDescription.contains(GENERATOR_AAI_CONFIGLOCATION_NOT_FOUND.split("%s")[0])) {
+      responseCode = MISSING_SYSTME_PROPERY_CONFIGURATION;
+    } else if (errorDescription.contains(GENERATOR_AAI_CONFIGFILE_NOT_FOUND.split("%s")[0])) {
+      responseCode = MISSING_CONFIG_PROPERTIES_FILE;
+    } else if (errorDescription.contains(GENERATOR_AAI_CONFIGLPROP_NOT_FOUND.split("%s")[0])) {
+      responseCode = MISSING_WIDGET_CONFIGURATION;
+    } else if (errorDescription.contains(GENERATOR_AAI_ERROR_INVALID_ID.split("%s")[0])) {
+      responseCode = INVALID_ID_VALUE;
+    } else if (errorDescription.contains(GENERATOR_AAI_ERROR_MISSING_RESOURCE_TOSCA.split("%s")[0]))
+      {
+         responseCode = RESOURCE_TOSCA_MISSING;
+    } else if(errorDescription.contains(GENERATOR_AAI_ERROR_MISSING_SERVICE_VERSION)) {
+      responseCode = MISSING_SERVICE_VERSION;
+    } else if(errorDescription.contains(GENERATOR_AAI_INVALID_SERVICE_VERSION))
+    {
+      responseCode = INVALID_SERVICE_VERSION;
+    } else if(errorDescription.contains(GENERATOR_AAI_ERROR_NULL_RESOURCE_VERSION_IN_SERVICE_TOSCA.
+        split("%s")[0])) {
+      responseCode = MISSING_RESOURCE_VERSION;
+    } else if(errorDescription.contains(
+        GENERATOR_AAI_ERROR_INVALID_RESOURCE_VERSION_IN_SERVICE_TOSCA.split("%s")[0])) {
+      responseCode = INVALID_RESOURCE_VERSION;
+    } else if(errorDescription.contains(GENERATOR_AAI_PROVIDING_SERVICE_MISSING.split("%s")[0])) {
+      responseCode = MISSING_PRO_SERVICE;
+    } else if(errorDescription.contains(
+        GENERATOR_AAI_PROVIDING_SERVICE_METADATA_MISSING.split("%s")[0])) {
+      responseCode = MISSING_PRO_SERVICE_METADATA;
+    }
+    return responseCode.getValue();
+  }
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/java/org/onap/sdc/generator/ArtifactGenerationServiceTest.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/java/org/onap/sdc/generator/ArtifactGenerationServiceTest.java
new file mode 100644
index 0000000..e6f1abd
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/java/org/onap/sdc/generator/ArtifactGenerationServiceTest.java
@@ -0,0 +1,1679 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator;
+
+import org.apache.commons.io.FileUtils;
+import org.onap.sdc.generator.aai.tosca.GroupDefinition;
+import org.onap.sdc.generator.data.AdditionalParams;
+import org.onap.sdc.generator.data.GenerationData;
+import org.onap.sdc.generator.data.GeneratorConstants;
+import org.onap.sdc.generator.impl.ArtifactGenerationServiceImpl;
+import org.onap.sdc.generator.aai.model.Resource;
+import org.onap.sdc.generator.aai.model.Service;
+import org.onap.sdc.generator.aai.model.Widget;
+import org.onap.sdc.generator.aai.tosca.NodeTemplate;
+import org.onap.sdc.generator.aai.tosca.ToscaTemplate;
+import org.onap.sdc.generator.aai.xml.Model;
+import org.onap.sdc.generator.aai.xml.ModelElement;
+import org.onap.sdc.generator.aai.xml.ModelElements;
+import org.onap.sdc.generator.aai.xml.ModelVer;
+import org.onap.sdc.generator.aai.xml.Relationship;
+import org.onap.sdc.generator.aai.xml.RelationshipData;
+import org.onap.sdc.generator.data.Artifact;
+import org.onap.sdc.generator.data.ArtifactType;
+import org.onap.sdc.generator.data.GeneratorUtil;
+import org.onap.sdc.generator.data.GroupType;
+import org.testng.Assert;
+import org.testng.annotations.BeforeSuite;
+import org.testng.annotations.Test;
+
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.URL;
+import java.util.*;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Unmarshaller;
+
+@SuppressWarnings("Duplicates")
+public class ArtifactGenerationServiceTest {
+
+  private static final String aaiArtifactType = ArtifactType.AAI.name();
+  private static final String aaiArtifactGroupType = GroupType.DEPLOYMENT.name();
+  private static final String generatorConfig = "{\"artifactTypes\": [\"OTHER\",\"AAI\"]}";
+  private final Properties properties = new Properties();
+  private final Map<String, String> additionalParams = new HashMap<>();
+  private final Map<String, String> resourcesVersion = new HashMap<>();
+
+  @BeforeSuite
+  public void loadProperties() throws Exception{
+    loadConfigFromClasspath(properties);
+    additionalParams.put(AdditionalParams.ServiceVersion.getName(), "1.0");
+  }
+
+  @Test
+  public void testArtifactGeneration() {
+    // Sunny day scenario service with VF anf vfmodule
+    try {
+
+      ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+      List<ToscaTemplate> toscas = new LinkedList<>();
+      String aaiResourceBasePaths = "aai/";
+      List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+      GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+      if (data.getErrorData().isEmpty()) {
+        for (Artifact inputArtifact : inputArtifacts) {
+          toscas.add(getToscaModel(inputArtifact));
+        }
+        List<Artifact> resultData = data.getResultData();
+
+        /*for( int i = 0 ; i < resultData.size() ; i++) {
+          Artifact artifact = resultData.get(i);
+          String fileName = artifact.getName();
+          while(fileName.contains(":")){
+            fileName = fileName.replace(":","");
+          }
+          File targetFile =new File("src/test/resources/"+fileName);
+          OutputStream outStream = new FileOutputStream(targetFile);
+          outStream.write(Base64.getDecoder().decode(artifact.getPayload()));
+        }*/
+
+        Assert.assertEquals(resultData.size(),5);  //  1-service,1-VF-resource,1-vfmodule and 2
+        // others
+        Map<String, Model> outputArtifactMap = populateAAIGeneratedModelStore(resultData);
+        testServiceTosca(toscas, outputArtifactMap);
+        testResourceTosca(toscas.iterator(), outputArtifactMap);
+      } else {
+        Assert.fail("error encountered : " + data.getErrorData().get("AAI"));
+      }
+
+    } catch (Exception e) {
+      Assert.fail(e.getMessage());
+    }
+  }
+
+  @Test
+  public void testWidgetinServiceTosca() {
+    // Sunny day scenario service with VF and extra widget like CP anf vf has vfmodule without
+    // member
+    try {
+      ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+      List<ToscaTemplate> toscas = new LinkedList<>();
+      String aaiResourceBasePaths = "testWidgetinServiceTosca/";
+      List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+      GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+      if (data.getErrorData().isEmpty()) {
+        for (Artifact inputArtifact : inputArtifacts) {
+          toscas.add(getToscaModel(inputArtifact));
+        }
+        List<Artifact> resultData = data.getResultData();
+        Assert.assertEquals(resultData.size(),5);  //  1-service,1-VF-resource,1-vfmodule and 2
+        // others
+        Map<String, Model> outputArtifactMap = populateAAIGeneratedModelStore(resultData);
+        testServiceTosca(toscas, outputArtifactMap);
+        testResourceTosca(toscas.iterator(), outputArtifactMap);
+      } else {
+        Assert.fail("error encountered : " + data.getErrorData().get("AAI"));
+      }
+
+    } catch (Exception e) {
+      Assert.fail(e.getMessage());
+    }
+  }
+
+  @Test
+  public void testSameVLdifferentVersion() {
+    // Sunny day scenario service with VF and extra widget like CP anf vf has vfmodule without
+    // member
+    try {
+      ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+      List<ToscaTemplate> toscas = new LinkedList<>();
+      String aaiResourceBasePaths = "testSameVLdifferentVersion/";
+      List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+      GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+      if (data.getErrorData().isEmpty()) {
+        for (Artifact inputArtifact : inputArtifacts) {
+          toscas.add(getToscaModel(inputArtifact));
+        }
+        List<Artifact> resultData = data.getResultData();
+        Assert.assertEquals(resultData.size(),8);
+        // others
+        Map<String, Model> outputArtifactMap = populateAAIGeneratedModelStore(resultData);
+        testServiceTosca(toscas, outputArtifactMap);
+        testResourceTosca(toscas.iterator(), outputArtifactMap);
+      } else {
+        Assert.fail("error encountered : " + data.getErrorData().get("AAI"));
+      }
+
+    } catch (Exception e) {
+      Assert.fail(e.getMessage());
+    }
+  }
+
+  @Test
+  public void testArtifactGenerationAllottedResourceAndL3Network() {
+    // Sunny day scenario service with allotted resource and L3-network
+    try {
+      ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+      List<ToscaTemplate> toscas = new LinkedList<>();
+      String aaiResourceBasePaths = "aai2/";
+      List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+      GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+      if (data.getErrorData().isEmpty()) {
+        for (Artifact inputArtifact : inputArtifacts) {
+          toscas.add(getToscaModel(inputArtifact));
+        }
+        List<Artifact> resultData = data.getResultData();
+
+        Assert.assertEquals(resultData.size(),5);
+        // and 2
+        // others
+        Map<String, Model> outputArtifactMap = populateAAIGeneratedModelStore(resultData);
+        testServiceTosca(toscas, outputArtifactMap);
+        testResourceTosca(toscas.iterator(), outputArtifactMap);
+      } else {
+        Assert.fail("error encountered : " + data.getErrorData().get("AAI"));
+      }
+
+    } catch (Exception e) {
+      Assert.fail(e.getMessage());
+    }
+  }
+
+  @Test(dependsOnMethods = {"testArtifactGeneration"})
+  public void testWhenMissingTosca() {
+    try {
+      //Missing Service tosca test case
+      String aaiResourceBasePaths = "testArtifactGeneration2/";
+      List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+      ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+      GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+      Assert.assertEquals(data.getErrorData().get("AAI").get(0),"Service tosca missing from list of input artifacts");
+    } catch (Exception e) {
+      Assert.fail(e.getMessage());
+    }
+  }
+
+  @Test(dependsOnMethods = {"testWhenMissingTosca"})
+  public void testWhenInvaildConfig() {
+    try {
+      //Invalid config test case
+      String generatorConfig1 = "{\"artifactTypes\": [\"ABC\"]}";
+      String aaiResourceBasePaths = "testArtifactGeneration2/";
+      List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+      ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+      GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig1, additionalParams);
+      Assert.assertEquals(data.getErrorData().get("ARTIFACT_GENERATOR_INVOCATION_ERROR").get(0),"Invalid Client Configuration");
+    } catch (Exception e) {
+      Assert.fail(e.getMessage());
+    }
+  }
+
+  @Test(dependsOnMethods = {"testArtifactGeneration"})
+  public void testWhenOnlyServToscaNoResTosca() {
+    try {
+      //Testing only service tosca no resource Tosca
+      String aaiResourceBasePaths = "testArtifactGeneration4/";
+      List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+      ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+      List<ToscaTemplate> toscas = new LinkedList<>();
+      GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+      List<Artifact> resultData = data.getResultData();
+      if (data.getErrorData().isEmpty()) {
+        for (Artifact inputArtifact : inputArtifacts) {
+          toscas.add(getToscaModel(inputArtifact));
+        }
+      }
+      Assert.assertEquals(resultData.size(),3);  //  1-service and 2-Others
+      Map<String, Model> outputArtifactMap = populateAAIGeneratedModelStore(resultData);
+      testServiceTosca(toscas, outputArtifactMap);
+    } catch (Exception e) {
+      Assert.fail(e.getMessage());
+    }
+  }
+
+  @Test(dependsOnMethods = {"testArtifactGeneration"})
+  public void testWhenInvaildYaml() {
+    try {
+      //Invalid Yaml file test case
+      String aaiResourceBasePaths = "testArtifactGeneration5/";
+      List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+      ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+      GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+      Assert.assertEquals(data.getErrorData().get("AAI").get(0),"Invalid format for Tosca YML  : " + inputArtifacts.get(0).getName());
+    } catch (Exception e) {
+      Assert.fail(e.getMessage());
+    }
+  }
+
+  @Test(dependsOnMethods = {"testArtifactGeneration"})
+  public void testWhenExtraResToscaNotPartOfServ() {
+    try {
+      // Valid scenario with extra resource tosca which is not part of Service
+      String aaiResourceBasePaths = "testArtifactGeneration6/";
+      List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+      ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+      List<ToscaTemplate> toscas = new LinkedList<>();
+      GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+      List<Artifact> resultData = data.getResultData();
+      if (data.getErrorData().isEmpty()) {
+        for (Artifact inputArtifact : inputArtifacts) {
+          toscas.add(getToscaModel(inputArtifact));
+        }
+      }
+      Assert.assertEquals(resultData.size(),3);  //  1-service and 2 Others
+      Map<String, Model> outputArtifactMap = populateAAIGeneratedModelStore(resultData);
+      testServiceTosca(toscas, outputArtifactMap);
+    } catch (Exception e) {
+      Assert.fail(e.getMessage());
+    }
+  }
+
+
+  @Test
+  public void testWhenInvUuIdAttrMissing() {
+    try {
+      // mandatory attribute <invariantUUID> missing
+      String aaiResourceBasePaths = "testArtifactGeneration8/";
+      List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+      ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+      GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+      Assert.assertEquals(
+          data.getErrorData().get("AAI").get(0),"Invalid Service/Resource definition mandatory attribute <invariantUUID> missing in Artifact: <" +
+              inputArtifacts.get(0).getName() + ">");
+
+    } catch (Exception e) {
+      Assert.fail(e.getMessage());
+    }
+  }
+
+  @Test
+  public void testErrorWhenInvalidInvId() {
+    try {
+      //Invariant Id in service tosca of length not 36
+      String aaiResourceBasePaths = "testErrorWhenInvalidInvId/";
+      List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+      ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+      GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+      Assert.assertEquals(
+          data.getErrorData().get("AAI").get(0),String.format(
+              GeneratorConstants.GENERATOR_AAI_ERROR_INVALID_ID,
+              "invariantUUID",inputArtifacts.get(0).getName()));
+
+    } catch (Exception e) {
+      Assert.fail(e.getMessage());
+    }
+  }
+
+  @Test
+  public void testWhenUuIdAttrMissing() {
+    try {
+      //mandatory attribute <UUID> missing
+      String aaiResourceBasePaths = "testArtifactGeneration9/";
+      List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+      ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+      GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+      Assert.assertEquals(
+          data.getErrorData().get("AAI").get(0),"Invalid Service/Resource definition mandatory attribute <UUID> missing in Artifact: <" +
+              inputArtifacts.get(0).getName() + ">");
+
+    } catch (Exception e) {
+      Assert.fail(e.getMessage());
+    }
+  }
+
+  @Test
+  public void testErrorWhenInvalidUuId() {
+    try {
+      //UUID Id in service tosca of length not 36
+      String aaiResourceBasePaths = "testErrorWhenInvalidUuId/";
+      List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+      ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+      GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+      Assert.assertEquals(
+          data.getErrorData().get("AAI").get(0),String.format(
+              GeneratorConstants.GENERATOR_AAI_ERROR_INVALID_ID,
+              "UUID",inputArtifacts.get(0).getName()));
+
+    } catch (Exception e) {
+      Assert.fail(e.getMessage());
+    }
+  }
+
+  @Test
+  public void testWhenNameAttrMissing() {
+    try {
+      //mandatory attribute <name> missing
+      String aaiResourceBasePaths = "testArtifactGeneration10/";
+      List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+      ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+      GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+      Assert.assertEquals(
+          data.getErrorData().get("AAI").get(0),"Invalid Service/Resource definition mandatory attribute <name> missing in Artifact: <" +
+              inputArtifacts.get(0).getName() + ">");
+
+    } catch (Exception e) {
+      Assert.fail(e.getMessage());
+    }
+  }
+
+  @Test //(dependsOnMethods = {"testArtifactGeneration"})
+  public void testWhenVfModInvUuIdAttrMissing() {
+    try {
+      //mandatory attribute <vfModuleModelInvariantUUID> missing
+      List<Artifact> inputArtifacts = new ArrayList<>();
+      readPayloadFromResource(inputArtifacts, "service_vmme_template_ModInvUUID.yml");
+      readPayloadFromResource(inputArtifacts, "vf_vmme_template_ModInvUUID.yml");
+      ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+      GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+      Assert.assertEquals(
+          data.getErrorData().get("AAI").get(0),"Invalid Service/Resource definition mandatory attribute <vfModuleModelInvariantUUID> missing in Artifact: <" +
+              inputArtifacts.get(1).getName() + ">");
+
+    } catch (Exception e) {
+      Assert.fail(e.getMessage());
+    }
+  }
+
+  public static void readPayload(List<Artifact> inputArtifacts, InputStream fis, String fileName) throws
+      IOException {
+    byte[] payload = new byte[fis.available()];
+    fis.read(payload);
+    String checksum = GeneratorUtil.checkSum(payload);
+    byte[] encodedPayload = GeneratorUtil.encode(payload);
+    Artifact artifact = new Artifact(aaiArtifactType, aaiArtifactGroupType, checksum, encodedPayload);
+    artifact.setName(fileName);
+    artifact.setLabel(fileName);
+    artifact.setDescription(fileName);
+    artifact.setVersion("1.0");
+    System.out.println(artifact.getName());
+    inputArtifacts.add(artifact);
+  }
+
+  @Test
+  public void testWhenInvalidVfModInvUuIdAttr() {
+    try {
+      //invalid id since not of length 36 for  <vfModuleModelInvariantUUID>
+      List<Artifact> inputArtifacts = new ArrayList<>();
+      readPayloadFromResource(inputArtifacts, "service_vmme_template_InvalidVfModInvUuIdAttr.yml");
+
+      readPayloadFromResource(inputArtifacts, "vf_vmme_template_InvalidVfModInvUuIdAttr.yml");
+      ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+      GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+      Assert.assertEquals(
+          data.getErrorData().get("AAI").get(0),String.format(
+              GeneratorConstants.GENERATOR_AAI_ERROR_INVALID_ID,
+              "vfModuleModelInvariantUUID", inputArtifacts.get(1).getName() ));
+
+    } catch (Exception e) {
+      Assert.fail(e.getMessage());
+    }
+  }
+
+  @Test //(dependsOnMethods = {"testArtifactGeneration"})
+  public void testWhenVfModNameAttrMissing() {
+    try {
+      //mandatory attribute <vfModuleModelName> missing
+      List<Artifact> inputArtifacts = new ArrayList<>();
+      readPayloadFromResource(inputArtifacts, "service_vmme_template_ModelName.yml");
+
+      readPayloadFromResource(inputArtifacts, "vf_vmme_template_ModelName.yml");
+      ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+      GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+      Assert.assertEquals(
+          data.getErrorData().get("AAI").get(0),"Invalid Service/Resource definition mandatory attribute <vfModuleModelName> missing in Artifact: <" +
+              inputArtifacts.get(1).getName() + ">");
+
+    } catch (Exception e) {
+      Assert.fail(e.getMessage());
+    }
+  }
+
+  /*public static void readPayload(List<Artifact> inputArtifacts,InputStream fis, String fileName)
+      throws
+      IOException {
+    byte[] payload = new byte[fis.available()];
+    fis.read(payload);
+    String checksum = GeneratorUtil.checkSum(payload);
+    byte[] encodedPayload = GeneratorUtil.encode(payload);
+    Artifact artifact = new Artifact(aaiArtifactType, aaiArtifactGroupType, checksum, encodedPayload);
+    artifact.setName(fileName);
+    artifact.setLabel(fileName);
+    artifact.setDescription(fileName);
+    artifact.setVersion("1.0");
+    System.out.println(artifact.getName());
+    inputArtifacts.add(artifact);
+  }*/
+
+  @Test //(dependsOnMethods = {"testArtifactGeneration"})
+  public void testWhenVfModUuIdAttrMissing() {
+    try {
+      //mandatory attribute <vfModuleModelUUID> missing in Artifact
+      List<Artifact> inputArtifacts = new ArrayList<>();
+      readPayloadFromResource(inputArtifacts, "service_vmme_template_ModelUUID.yml");
+
+      readPayloadFromResource(inputArtifacts, "vf_vmme_template_ModelUUID.yml");
+      ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+      GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+      Assert.assertEquals(
+          data.getErrorData().get("AAI").get(0),"Invalid Service/Resource definition mandatory " +
+              "attribute <vfModuleModelUUID> missing in Artifact: <" +
+              inputArtifacts.get(1).getName() + ">");
+
+    } catch (Exception e) {
+      Assert.fail(e.getMessage());
+    }
+  }
+
+  @Test
+  public void testWhenInvalidVfModUuIdAttr() {
+    try {
+      //invalid id since not of length 36 for  <vfModuleModelUUID>
+      List<Artifact> inputArtifacts = new ArrayList<>();
+      readPayloadFromResource(inputArtifacts, "service_vmme_template_InvalidVfModUuIdAttr.yml");
+
+      readPayloadFromResource(inputArtifacts, "vf_vmme_template_InvalidVfModUuIdAttr.yml");
+      ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+      GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+      Assert.assertEquals(
+          data.getErrorData().get("AAI").get(0),String.format(
+              GeneratorConstants.GENERATOR_AAI_ERROR_INVALID_ID,
+              "vfModuleModelUUID", inputArtifacts.get(1).getName() ));
+
+    } catch (Exception e) {
+      Assert.fail(e.getMessage());
+    }
+  }
+
+  @Test //(dependsOnMethods = {"testArtifactGeneration"})
+  public void testWhenVfModVersionAttrMissing() {
+    try {
+      //mandatory attribute <vfModuleModelVersion> missing
+      List<Artifact> inputArtifacts = new ArrayList<>();
+      readPayloadFromResource(inputArtifacts, "service_vmme_template_ModelVersion.yml");
+
+      readPayloadFromResource(inputArtifacts, "vf_vmme_template_ModelVersion.yml");
+      ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+      GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+      Assert.assertEquals(
+          data.getErrorData().get("AAI").get(0),"Invalid Service/Resource definition mandatory attribute <vfModuleModelVersion> missing in Artifact: <" +
+              inputArtifacts.get(1).getName() + ">");
+
+    } catch (Exception e) {
+      Assert.fail(e.getMessage());
+    }
+  }
+
+  @Test
+  public void testErrorWhenNoSystemPropConfigured() throws Exception  {
+    String configLoc = System.getProperty("artifactgenerator.config");
+    try {
+      System.clearProperty("artifactgenerator.config");
+      ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+      String aaiResourceBasePaths = "aai/";
+      List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+      GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+      Assert.assertEquals(false,data.getErrorData().isEmpty());
+      Assert.assertEquals(data.getErrorData().
+          get("AAI").get(0), GeneratorConstants.GENERATOR_AAI_CONFIGLOCATION_NOT_FOUND);
+    } catch (Exception e) {
+      Assert.fail(e.getMessage());
+    }
+    finally{
+      System.setProperty("artifactgenerator.config",configLoc);
+    }
+  }
+
+  @Test
+  public void testErrorWhenNoWidgetInConfig() throws Exception  {
+    String configLoc = System.getProperty("artifactgenerator.config");
+    final File configFile = new File(configLoc);
+    String configDir = configLoc.substring(0, configLoc.lastIndexOf(File.separator));
+    final File tempFile = new File(configDir + File.separator + "temp.properties");
+    try {
+      //copy orignal Artifact-Generator.properties to temp.properties for backup
+      FileUtils.copyFile(configFile, tempFile);
+
+      String serviceWidgetName = ArtifactType.AAI.name()+".model-version-id."+Widget.getWidget
+          (Widget.Type.SERVICE)
+          .getName();
+      String assertMsg = ArtifactType.AAI.name() + ".model-version-id." +Widget.getWidget
+          (Widget.Type.SERVICE).getName();
+
+      //Remove property from Artifact-Generator.properties
+      properties.remove(serviceWidgetName);
+      try (OutputStream fos = new FileOutputStream(new File(configLoc))) {
+        properties.store(fos,null);
+      }
+
+      ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+      String aaiResourceBasePaths = "aai/";
+      List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+      GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+      Assert.assertEquals(false,data.getErrorData().isEmpty());
+      String errMsg = String.format(GeneratorConstants.GENERATOR_AAI_CONFIGLPROP_NOT_FOUND,assertMsg);
+      Assert.assertEquals(data.getErrorData().get("AAI").get(0),errMsg);
+    } catch (Exception e) {
+      Assert.fail(e.getMessage());
+    }
+    finally{
+      if(tempFile.exists()){
+        //Revert the changes
+        FileUtils.copyFile(tempFile, configFile);
+        loadConfigFromClasspath(properties);
+        tempFile.delete();
+      }
+    }
+  }
+
+  @Test
+  public void testErrorWhenNoFileAtConfigLocation() throws Exception  {
+    String configLoc = System.getProperty("artifactgenerator.config");
+    try {
+      System.setProperty("artifactgenerator.config",configLoc + File.separator + "testErrorWhenNoFileAtConfigLocation");
+      ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+      String aaiResourceBasePaths = "aai/";
+      List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+      GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+      Assert.assertEquals(data.getErrorData().isEmpty(),false);
+      Assert.assertEquals(data.getErrorData().get("AAI").get(0),String.format(
+          GeneratorConstants.GENERATOR_AAI_CONFIGFILE_NOT_FOUND,System.getProperty
+          ("artifactgenerator.config")));
+    } catch (Exception e) {
+      Assert.fail(e.getMessage());
+    }
+    finally{
+      System.setProperty("artifactgenerator.config",configLoc);
+    }
+  }
+
+  @Test
+  public void testErrorWhenNoServiceVersion() {
+    //  scenario service with VF anf vfmodule but no service version in additional parameter
+    try {
+      additionalParams.clear();
+      ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+      String aaiResourceBasePaths = "aai/";
+      List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+      GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+      Assert.assertEquals(data.getErrorData().isEmpty(),false);
+      Assert.assertEquals(data.getErrorData().get("AAI").get(0),
+          GeneratorConstants.GENERATOR_AAI_ERROR_MISSING_SERVICE_VERSION);
+    } catch (Exception e) {
+      Assert.fail(e.getMessage());
+    }
+    finally{
+      additionalParams.put(AdditionalParams.ServiceVersion.getName(),"1.0");
+    }
+  }
+
+  @Test
+  public void testArtifactGenerationWithServiceVersion() {
+    // Sunny day scenario service with VF anf vfmodule and service version as adiitional parameter
+    try {
+      additionalParams.put(AdditionalParams.ServiceVersion.getName(),"9.0");
+      ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+      List<ToscaTemplate> toscas = new LinkedList<>();
+      String aaiResourceBasePaths = "aai/";
+      List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+      GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+      if (data.getErrorData().isEmpty()) {
+        for (Artifact inputArtifact : inputArtifacts) {
+          toscas.add(getToscaModel(inputArtifact));
+        }
+        List<Artifact> resultData = data.getResultData();
+
+        /*for( int i = 0 ; i < resultData.size() ; i++) {
+          Artifact artifact = resultData.get(i);
+          String fileName = artifact.getName();
+          while(fileName.contains(":")){
+            fileName = fileName.replace(":","");
+          }
+          File targetFile =new File("src/test/resources/"+fileName);
+          OutputStream outStream = new FileOutputStream(targetFile);
+          outStream.write(Base64.getDecoder().decode(artifact.getPayload()));
+        }*/
+
+        Assert.assertEquals(resultData.size(),5);  //  1-service,1-VF-resource,1-vfmodule and 2
+        // others
+        Map<String, Model> outputArtifactMap = populateAAIGeneratedModelStore(resultData);
+        testServiceTosca(toscas, outputArtifactMap);
+        testResourceTosca(toscas.iterator(), outputArtifactMap);
+      } else {
+        Assert.fail("error encountered : " + data.getErrorData().get("AAI"));
+      }
+
+    } catch (Exception e) {
+      Assert.fail(e.getMessage());
+    }
+    finally{
+      additionalParams.put(AdditionalParams.ServiceVersion.getName(),"1.0");
+    }
+  }
+
+  @Test
+  public void testErrorWhenInvalidServiceVersion() {
+    //  scenario service with VF anf vfmodule but invalid service version in additional parameter
+    try {
+      ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+      String aaiResourceBasePaths = "aai/";
+      List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+
+      additionalParams.put(AdditionalParams.ServiceVersion.getName(),"1");
+      GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+      Assert.assertEquals(data.getErrorData().isEmpty(),false);
+      Assert.assertEquals(data.getErrorData().get("AAI").get(0),
+          GeneratorConstants.GENERATOR_AAI_INVALID_SERVICE_VERSION);
+
+      additionalParams.put(AdditionalParams.ServiceVersion.getName(),"0.1");
+      data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+      Assert.assertEquals(data.getErrorData().isEmpty(),false);
+      Assert.assertEquals(data.getErrorData().get("AAI").get(0),
+          GeneratorConstants.GENERATOR_AAI_INVALID_SERVICE_VERSION);
+
+      additionalParams.put(AdditionalParams.ServiceVersion.getName(),"0.0");
+      data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+      Assert.assertEquals(data.getErrorData().isEmpty(),false);
+      Assert.assertEquals(data.getErrorData().get("AAI").get(0),
+          GeneratorConstants.GENERATOR_AAI_INVALID_SERVICE_VERSION);
+
+    } catch (Exception e) {
+      Assert.fail(e.getMessage());
+    }
+    finally{
+      additionalParams.put(AdditionalParams.ServiceVersion.getName(),"1.0");
+    }
+  }
+
+  @Test
+  public void testMissingResourceTosca() {
+    try {
+      //Service with resource but seperate resource tosca not coming as input.
+      String aaiResourceBasePaths = "missingResourceTosca/";
+      List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+      ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+      GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+      Assert.assertEquals(data.getErrorData().get("AAI").get(0),"Cannot generate artifacts. Resource Tosca missing for resource with UUID: <b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc>");
+    } catch (Exception e) {
+      Assert.fail(e.getMessage());
+    }
+  }
+  @Test
+  public void testMissingVLTosca() {
+    try {
+      //Service with VL but seperate VL tosca not coming as input artifact.
+      String aaiResourceBasePaths = "missingVLTosca/";
+      List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+      ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+      GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+      Assert.assertEquals(data.getErrorData().get("AAI").get(0),"Cannot generate artifacts. Resource Tosca missing for resource with UUID: <3f8fa4d2-2b86-4b36-bbc8-ffb8f9f57468>");
+    } catch (Exception e) {
+      Assert.fail(e.getMessage());
+    }
+  }
+
+  @Test
+  public void testErrorWhenNoResourceVersion() {
+    //  scenario service with VF but missing resource version in service tosca
+    try {
+      ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+      String aaiResourceBasePaths = "testErrorWhenNoResourceVersion/";
+      List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+      GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+      Assert.assertEquals(data.getErrorData().isEmpty(),false);
+      Assert.assertEquals(data.getErrorData().get("AAI").get(0),
+          "Invalid Service definition mandatory attribute version missing for resource with UUID: <b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc>");
+    } catch (Exception e) {
+      Assert.fail(e.getMessage());
+    }
+  }
+
+  @Test
+  public void testErrorWhenInvalidResourceVersion1() {
+    //  scenario service with VF but invalid resource version 0.0 in service tosca
+    try {
+      ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+      String aaiResourceBasePaths = "testErrorWhenInvalidResourceVersion1/";
+      List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+      GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+      Assert.assertEquals(data.getErrorData().isEmpty(),false);
+      Assert.assertEquals(data.getErrorData().get("AAI").get(0),
+          "Cannot generate artifacts. Invalid Resource version in Service tosca for resource with UUID: <b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc>");
+    } catch (Exception e) {
+      Assert.fail(e.getMessage());
+    }
+  }
+
+  @Test
+  public void testErrorWhenInvalidResourceVersion2() {
+    //  scenario service with VF but invalid resource version 1 in service tosca
+    try {
+      ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+      String aaiResourceBasePaths = "testErrorWhenInvalidResourceVersion2/";
+      List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+      GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+      Assert.assertEquals(data.getErrorData().isEmpty(),false);
+      Assert.assertEquals(data.getErrorData().get("AAI").get(0),
+          "Cannot generate artifacts. Invalid Resource version in Service tosca for resource with UUID: <b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc>");
+    } catch (Exception e) {
+      Assert.fail(e.getMessage());
+    }
+  }
+
+  @Test
+  public void testArtifactGenerationAllottedResourceWithIpMuxAndTunnelXConn() {
+    try {
+      ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+      List<ToscaTemplate> toscas = new LinkedList<>();
+      String aaiResourceBasePaths = "testArtifactGeneration15/";
+      List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+      GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+      if (data.getErrorData().isEmpty()) {
+        for (Artifact inputArtifact : inputArtifacts) {
+          toscas.add(getToscaModel(inputArtifact));
+        }
+        List<Artifact> resultData = data.getResultData();
+
+        Assert.assertEquals(resultData.size(),5);
+        Map<String, Model> outputArtifactMap = populateAAIGeneratedModelStore(resultData);
+        testServiceTosca(toscas, outputArtifactMap);
+        testResourceTosca(toscas.iterator(), outputArtifactMap);
+      } else {
+        Assert.fail("error encountered : " + data.getErrorData().get("AAI"));
+      }
+
+    } catch (Exception e) {
+      Assert.fail(e.getMessage());
+    }
+  }
+
+//  @Test
+  public void testErrorWhenAllottedResourceWithOutProvidingServiceId() {
+    try {
+      ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+      String aaiResourceBasePaths = "testErrorWhenAllottedResourceWithOutDependingServiceId/";
+      List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+      GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+      Assert.assertEquals(data.getErrorData().isEmpty(),false);
+      Assert.assertEquals(data.getErrorData().get("AAI").get(0),String.format
+              (GeneratorConstants.GENERATOR_AAI_PROVIDING_SERVICE_METADATA_MISSING, "707b2850-e830-4b00-9902-879f44ac05a4"));
+    } catch (Exception e) {
+      Assert.fail(e.getMessage());
+    }
+  }
+
+  @Test
+  public void testArtifactGenerationWithoutAllottedResource() {
+    try {
+      ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+      String aaiResourceBasePaths = "testArtifactGeneration16/";
+      List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+      GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+      Assert.assertEquals(data.getErrorData().isEmpty(),false);
+      Assert.assertEquals(data.getErrorData().get("AAI").get(0),String.format
+          (GeneratorConstants.GENERATOR_AAI_PROVIDING_SERVICE_MISSING, "a54a5235-b69d-4f8a-838b-d011e6783fa5"));
+    } catch (Exception e) {
+      Assert.fail(e.getMessage());
+    }
+  }
+
+  @Test
+  public void testArtifactGenerationAllottedResourceIpmuxSameInvariantDiffVersion() {
+    try {
+      ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+      List<ToscaTemplate> toscas = new LinkedList<>();
+      String aaiResourceBasePaths = "testArtifactGeneration17/";
+      List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+      GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+      if (data.getErrorData().isEmpty()) {
+        for (Artifact inputArtifact : inputArtifacts) {
+          toscas.add(getToscaModel(inputArtifact));
+        }
+        List<Artifact> resultData = data.getResultData();
+
+        Assert.assertEquals(resultData.size(),5);
+        Map<String, Model> outputArtifactMap = populateAAIGeneratedModelStore(resultData);
+        testServiceTosca(toscas, outputArtifactMap);
+        testResourceTosca(toscas.iterator(), outputArtifactMap);
+      } else {
+        Assert.fail("error encountered : " + data.getErrorData().get("AAI"));
+      }
+
+    } catch (Exception e) {
+      Assert.fail(e.getMessage());
+    }
+  }
+
+  @Test
+  public void testArtifactGenerationAllottedResourceIpmuxSameInvariantSameVersion() {
+    try {
+      ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+      List<ToscaTemplate> toscas = new LinkedList<>();
+      String aaiResourceBasePaths = "testArtifactGeneration18/";
+      List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+      GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+      if (data.getErrorData().isEmpty()) {
+        for (Artifact inputArtifact : inputArtifacts) {
+          toscas.add(getToscaModel(inputArtifact));
+        }
+        List<Artifact> resultData = data.getResultData();
+
+
+        Assert.assertEquals(resultData.size(),4);
+        Map<String, Model> outputArtifactMap = populateAAIGeneratedModelStore(resultData);
+        testServiceTosca(toscas, outputArtifactMap);
+        testResourceTosca(toscas.iterator(), outputArtifactMap);
+      } else {
+        Assert.fail("error encountered : " + data.getErrorData().get("AAI"));
+      }
+
+    } catch (Exception e) {
+      Assert.fail(e.getMessage());
+    }
+  }
+
+  @Test
+  public void testArtifactGenerationAllottedResourceIpmuxWithGroups() {
+    try {
+      ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+      List<ToscaTemplate> toscas = new LinkedList<>();
+      String aaiResourceBasePaths = "testAllotedResourceWithDependingSerWithGroups/";
+      List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+      GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+      if (data.getErrorData().isEmpty()) {
+        for (Artifact inputArtifact : inputArtifacts) {
+          toscas.add(getToscaModel(inputArtifact));
+        }
+        List<Artifact> resultData = data.getResultData();
+
+        Assert.assertEquals(resultData.size(),5);
+        Map<String, Model> outputArtifactMap = populateAAIGeneratedModelStore(resultData);
+        testServiceTosca(toscas, outputArtifactMap);
+        testResourceTosca(toscas.iterator(), outputArtifactMap);
+      } else {
+        Assert.fail("error encountered : " + data.getErrorData().get("AAI"));
+      }
+
+    } catch (Exception e) {
+      Assert.fail(e.getMessage());
+    }
+  }
+
+  @Test
+  public void testArtifactGenerationAllottedResourceWithVF() {
+    try {
+      ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+      List<ToscaTemplate> toscas = new LinkedList<>();
+      String aaiResourceBasePaths = "testArtifactGenerationAllottedResourceWithVF/";
+      List<Artifact> inputArtifacts = init(aaiResourceBasePaths);
+      GenerationData data = obj.generateArtifact(inputArtifacts, generatorConfig, additionalParams);
+      if (data.getErrorData().isEmpty()) {
+        for (Artifact inputArtifact : inputArtifacts) {
+          toscas.add(getToscaModel(inputArtifact));
+        }
+        List<Artifact> resultData = data.getResultData();
+
+        Assert.assertEquals(resultData.size(),7);
+        Map<String, Model> outputArtifactMap = populateAAIGeneratedModelStore(resultData);
+        testServiceTosca(toscas, outputArtifactMap);
+        testResourceTosca(toscas.iterator(), outputArtifactMap);
+      } else {
+        Assert.fail("error encountered : " + data.getErrorData().get("AAI"));
+      }
+
+    } catch (Exception e) {
+      Assert.fail(e.getMessage());
+    }
+  }
+
+
+  //@Test
+  public void testServiceTosca(List<ToscaTemplate> toscas, Map<String, Model> outputArtifactMap) {
+    try {
+      ToscaTemplate serviceTosca = getServiceTosca(toscas);
+      if (serviceTosca == null) {
+        Assert.fail("Service Tosca not found");
+      }
+      serviceTosca.getMetadata().put("version", "1.0");
+      Service service = new Service();
+      service.populateModelIdentificationInformation(serviceTosca.getMetadata());
+      String serviceNameVersionId = service.getModelNameVersionId();
+      Model serviceAAIModel = getAAIModelByNameVersionId(serviceNameVersionId, outputArtifactMap);
+      validateServiceModelMetadata(service, serviceAAIModel);
+      //Validate Service instance base widget
+      ModelVer modelVersion =  serviceAAIModel.getModelVers().getModelVer().get(0);
+
+      List<ModelElement> matchedServiceBaseWidgetElements =
+          getModelElementbyRelationshipValue( modelVersion.getModelElements(),
+              Widget.getWidget(Widget.Type.SERVICE).getId());
+      validateMatchedModelElementsInService(matchedServiceBaseWidgetElements,
+          Widget.getWidget(Widget.Type.SERVICE).getName());
+
+      validateWidgetIds(matchedServiceBaseWidgetElements, Widget.getWidget(Widget.Type.SERVICE).getName(),
+          Widget.getWidget(Widget.Type.SERVICE).getWidgetId());
+
+      ModelElements baseServiceWidgetModelElements =
+          matchedServiceBaseWidgetElements.get(0).getModelElements();
+
+
+      Map<String, String> nodeTemplateIdTypeStore = getNodeTemplateTypeStore(serviceTosca);
+      if (nodeTemplateIdTypeStore != null) {
+        for (String key : nodeTemplateIdTypeStore.keySet()) {
+          if (nodeTemplateIdTypeStore.get(key).contains("org.openecomp.resource.vf")) {
+            List<ModelElement> matchedResourceElements =
+                getModelElementbyRelationshipValue(baseServiceWidgetModelElements, key);
+            if (nodeTemplateIdTypeStore.get(key).contains("org.openecomp.resource.vf.allottedResource")){
+              validateMatchedModelElementsInService(matchedResourceElements,
+                  Widget.getWidget(Widget.Type.ALLOTTED_RESOURCE).getName());
+            }else {
+              validateMatchedModelElementsInService(matchedResourceElements,
+                  Widget.getWidget(Widget.Type.VF).getName());
+            }
+
+            //Validate uuid and invariantuuid are populated in model-ver.model-version-id and model.model-invariant-id
+            Assert.assertEquals(matchedResourceElements.get(0).getRelationshipList()
+                .getRelationship().get(0)
+                .getRelationshipData().get(0).getRelationshipValue(),key);
+
+            Assert.assertEquals(matchedResourceElements.get(0).getRelationshipList().getRelationship().get(0)
+                .getRelationshipData().get(1).getRelationshipValue(), nodeTemplateIdTypeStore
+                .get(key+"-INV_UID"));
+          } else if(nodeTemplateIdTypeStore.get(key).contains("org.openecomp.resource.vl")){
+            //validate l3-network in service tosca
+            List<ModelElement> matchedResourceElements =
+                getModelElementbyRelationshipValue(baseServiceWidgetModelElements, key);
+            validateMatchedModelElementsInService(matchedResourceElements,
+                Widget.getWidget(Widget.Type.L3_NET).getName());
+            //Validate uuid and invariantuuid are populated in model-ver.model-version-id and model.model-invariant-id
+            Assert.assertEquals(matchedResourceElements.get(0).getRelationshipList()
+                .getRelationship().get(0)
+                .getRelationshipData().get(0).getRelationshipValue(),key);
+
+            Assert.assertEquals(matchedResourceElements.get(0).getRelationshipList().getRelationship().get(0)
+                .getRelationshipData().get(1).getRelationshipValue(), nodeTemplateIdTypeStore
+                .get(key+"-INV_UID"));
+          }
+        }
+
+
+      System.out.println();
+
+      }
+    } catch (IllegalArgumentException e) {
+      Assert.fail(e.getMessage());    //Can come while populating metadata
+    }
+  }
+
+  private void validateWidgetIds(List<ModelElement> matchedServiceBaseWidgetElements,
+                                 String widgetName, String widgetInvUuId) {
+    Assert.assertEquals(matchedServiceBaseWidgetElements.get(0).getRelationshipList().getRelationship().get(0)
+        .getRelationshipData().get(0).getRelationshipValue(), properties.getProperty(ArtifactType.AAI.name()
+        + ".model-version-id."+ widgetName));
+
+    Assert.assertEquals(matchedServiceBaseWidgetElements.get(0).getRelationshipList().getRelationship().get(0)
+        .getRelationshipData().get(1).getRelationshipValue(), widgetInvUuId);
+  }
+
+
+  public void testL3NetworkResourceTosca(Map<String, Model> outputArtifactMap , ToscaTemplate
+      resourceTosca) {
+    try {
+      if (resourceTosca != null) {
+        Resource resource = new Resource();
+        resource.populateModelIdentificationInformation(resourceTosca.getMetadata());
+        String resourceNameVersionId = resource.getModelNameVersionId();
+        Model resourceAAIModel =
+            getAAIModelByNameVersionId(resourceNameVersionId, outputArtifactMap);
+        if (resourceAAIModel != null) {
+          validateResourceModelMetadata(resource, resourceAAIModel);
+          //Validate Resource instance base widget
+
+          ModelVer modelVersion = resourceAAIModel.getModelVers().getModelVer().get(0);
+
+          List<ModelElement> matchedVFBaseWidgetElements =
+              getModelElementbyRelationshipValue(modelVersion.getModelElements(),
+                  Widget.getWidget(Widget.Type.L3_NET).getId());
+          validateMatchedModelElementsInService(matchedVFBaseWidgetElements,
+              Widget.getWidget(Widget.Type.L3_NET).getName());
+
+          validateWidgetIds(matchedVFBaseWidgetElements, Widget.getWidget(Widget.Type.L3_NET).getName(),
+              Widget.getWidget(Widget.Type.L3_NET).getWidgetId());
+
+        }else {
+          System.out.println("Resource mapping not found for " + resourceNameVersionId);
+        }
+      }
+
+    }catch (IllegalArgumentException e) {
+      Assert.fail(e.getMessage());    //Can come while populating metadata
+    }
+
+  }
+
+  public void testAllottedResourceTosca(Map<String, Model> outputArtifactMap , ToscaTemplate
+      resourceTosca) {
+    try {
+      if (resourceTosca != null) {
+        Resource resource = new Resource();
+        resource.populateModelIdentificationInformation(resourceTosca.getMetadata());
+        String resourceNameVersionId = resource.getModelNameVersionId();
+        Model resourceAAIModel =
+            getAAIModelByNameVersionId(resourceNameVersionId, outputArtifactMap);
+        if (resourceAAIModel != null) {
+          validateResourceModelMetadata(resource, resourceAAIModel);
+          //Validate Resource instance base widget
+
+          ModelVer modelVersion = resourceAAIModel.getModelVers().getModelVer().get(0);
+
+          List<ModelElement> matchedVFBaseWidgetElements =
+              getModelElementbyRelationshipValue(modelVersion.getModelElements(),
+                  Widget.getWidget(Widget.Type.ALLOTTED_RESOURCE).getId());
+          validateMatchedModelElementsInService(matchedVFBaseWidgetElements,
+              Widget.getWidget(Widget.Type.ALLOTTED_RESOURCE).getName());
+
+          validateWidgetIds(matchedVFBaseWidgetElements, Widget.getWidget(Widget.Type.ALLOTTED_RESOURCE).getName(),
+              Widget.getWidget(Widget.Type.ALLOTTED_RESOURCE).getWidgetId());
+
+          Map<String, Object> dependingServiceDetails = getProvidingServiceDetails(resourceTosca);
+
+          ModelElements containedModelElements = modelVersion.getModelElements().getModelElement().
+                  get(0).getModelElements();
+          Assert.assertEquals( containedModelElements.getModelElement().get(0).getRelationshipList()
+                .getRelationship().get(0).getRelationshipData().get(0).getRelationshipValue(),
+                dependingServiceDetails.get("providing_service_uuid"));
+
+          Assert.assertEquals(containedModelElements.getModelElement().get(0).getRelationshipList()
+                .getRelationship().get(0).getRelationshipData().get(1).getRelationshipValue(),
+                dependingServiceDetails.get("providing_service_invariant_uuid"));
+
+          if("Allotted Resource".equals(resourceTosca.getMetadata().get("category")) &&
+                  "Tunnel XConnect".equals(resourceTosca.getMetadata().get("subcategory"))) {
+
+            List<ModelElement> matchedTunnelXConnectWidgetElements =
+                    getModelElementbyRelationshipValue(containedModelElements,
+                            Widget.getWidget(Widget.Type.TUNNEL_XCONNECT).getId());
+            validateMatchedModelElementsInService(matchedTunnelXConnectWidgetElements,
+                    Widget.getWidget(Widget.Type.TUNNEL_XCONNECT).getName());
+
+            validateWidgetIds(matchedTunnelXConnectWidgetElements, Widget.getWidget(Widget.Type.TUNNEL_XCONNECT).getName(),
+                    Widget.getWidget(Widget.Type.TUNNEL_XCONNECT).getWidgetId());
+          }
+
+        }else {
+          System.out.println("Resource mapping not found for " + resourceNameVersionId);
+        }
+      }
+
+    }catch (IllegalArgumentException e) {
+      Assert.fail(e.getMessage());    //Can come while populating metadata
+    }
+
+  }
+
+  public Map<String, Object> getProvidingServiceDetails(ToscaTemplate resourceTemplate) {
+Set<String> keys = resourceTemplate.getTopology_template().getNode_templates().keySet();
+
+Map<String, Object> nodeProperties =null;
+for(String key : keys) {
+NodeTemplate node = resourceTemplate.getTopology_template().getNode_templates().get(key);
+if(node.getType().equals("org.openecomp.resource.vfc.AllottedResource")) {
+nodeProperties = node.getProperties();
+  }
+}
+
+  return nodeProperties;
+  }
+
+  public void testVfTosca(Map<String, Model> outputArtifactMap , ToscaTemplate resourceTosca) {
+    try {
+      //ToscaTemplate resourceTosca = getResourceTosca(toscas);
+      //resourceTosca.getTopology_template().getGroups().
+      if (resourceTosca != null) {
+        Resource resource = new Resource();
+        resource.populateModelIdentificationInformation(resourceTosca.getMetadata());
+        String resourceNameVersionId = resource.getModelNameVersionId();
+        Model resourceAAIModel =
+            getAAIModelByNameVersionId(resourceNameVersionId, outputArtifactMap);
+        if (resourceAAIModel != null) {
+          validateResourceModelMetadata(resource, resourceAAIModel);
+          //Validate Resource instance base widget
+
+          ModelVer modelVersion = resourceAAIModel.getModelVers().getModelVer().get(0);
+
+          List<ModelElement> matchedVFBaseWidgetElements =
+              getModelElementbyRelationshipValue(modelVersion.getModelElements(),
+                  Widget.getWidget(Widget.Type.VF).getId());
+          validateMatchedModelElementsInService(matchedVFBaseWidgetElements,
+              Widget.getWidget(Widget.Type.VF).getName());
+
+          validateWidgetIds(matchedVFBaseWidgetElements, Widget.getWidget(Widget.Type.VF).getName(),
+                Widget.getWidget(Widget.Type.VF).getWidgetId());
+
+          ModelElements baseResourceWidgetModelElements =
+              matchedVFBaseWidgetElements.get(0).getModelElements();
+          if (resourceTosca.getTopology_template() != null) {
+            Map<String, String> groupIdTypeStore = getGroupsTypeStore(resourceTosca);
+
+            if (baseResourceWidgetModelElements.getModelElement().size() !=
+                groupIdTypeStore.size()) {
+              Assert.fail("Missing VFModule in VF model.xml");
+            }
+
+            for (String key : groupIdTypeStore.keySet()) {
+
+              List<ModelElement> matchedResourceElements =
+                  getModelElementbyRelationshipValue(baseResourceWidgetModelElements, key);
+              validateMatchedModelElementsInService(matchedResourceElements,
+                  Widget.getWidget(Widget.Type.VFMODULE).getName());
+              Model resourceAAIVFModel = getAAIModelByNameVersionId(key, outputArtifactMap);
+              Map<String, String> vfModuleModelMetadata =
+                  getVFModuleMetadataTosca(resourceTosca, key);
+              Map<String, Object> vfModuleMembers = getVFModuleMembersTosca(resourceTosca, key);
+
+              validateVFModelMetadata(vfModuleModelMetadata, resourceAAIVFModel);
+
+
+              ModelVer modelVfVersion = resourceAAIVFModel.getModelVers().getModelVer().get(0);
+
+              List<ModelElement> matchedVFModuleBaseWidgetElements =
+                  getModelElementbyRelationshipValue(modelVfVersion.getModelElements(),
+                      Widget.getWidget(Widget.Type.VFMODULE).getId());
+              validateMatchedModelElementsInService(matchedVFModuleBaseWidgetElements,
+                  Widget.getWidget(Widget.Type.VFMODULE).getName());
+              validateWidgetIds(matchedVFModuleBaseWidgetElements, Widget.getWidget(Widget.Type.VFMODULE)
+                  .getName(), Widget.getWidget(Widget.Type.VFMODULE).getWidgetId());
+
+              ModelElements baseResourceVFModuleWidgetModelElements =
+                  matchedVFModuleBaseWidgetElements.get(0).getModelElements();
+             if (vfModuleMembers.containsKey("l3-network")) {
+                //Validate l3
+                List<ModelElement> matchedL3NetworkElements =
+                    getModelElementbyRelationshipValue(baseResourceVFModuleWidgetModelElements,
+                        Widget.getWidget(Widget.Type.L3_NET).getId());
+                validateMatchedModelElementsInService(matchedL3NetworkElements,
+                    Widget.getWidget(Widget.Type.L3_NET).getName());
+                validateWidgetIds(matchedL3NetworkElements, Widget.getWidget(Widget.Type.L3_NET)
+                    .getName(), Widget.getWidget(Widget.Type.L3_NET).getWidgetId());
+              }
+              if (vfModuleMembers.containsKey("vserver")) {
+                //Validate vserver
+                List<ModelElement> matchedVserverElements =
+                    getModelElementbyRelationshipValue(baseResourceVFModuleWidgetModelElements,
+                        Widget.getWidget(Widget.Type.VSERVER).getId());
+                validateMatchedModelElementsInService(matchedVserverElements,
+                    Widget.getWidget(Widget.Type.VSERVER).getName());
+                ModelElements vserverWidgetModelElements =
+                    matchedVserverElements.get(0).getModelElements();
+
+                validateWidgetIds(matchedVserverElements, Widget.getWidget(Widget.Type.VSERVER)
+                    .getName(), Widget.getWidget(Widget.Type.VSERVER).getWidgetId());
+
+
+                //Validate vserver->vfc
+                List<ModelElement> matchedVfcElements =
+                    getModelElementbyRelationshipValue(vserverWidgetModelElements,
+                        Widget.getWidget(Widget.Type.VFC).getId());
+                validateMatchedModelElementsInService(matchedVfcElements,
+                    Widget.getWidget(Widget.Type.VFC).getName());
+                validateWidgetIds(matchedVfcElements, Widget.getWidget(Widget.Type.VFC).getName(),
+                    Widget.getWidget(Widget.Type.VFC).getWidgetId());
+
+                //Validate vserver->Image
+                List<ModelElement> matchedImageElements =
+                    getModelElementbyRelationshipValue(vserverWidgetModelElements,
+                        Widget.getWidget(Widget.Type.IMAGE).getId());
+                validateMatchedModelElementsInService(matchedImageElements,
+                    Widget.getWidget(Widget.Type.IMAGE).getName());
+                validateWidgetIds(matchedImageElements, Widget.getWidget(Widget.Type.IMAGE)
+                    .getName(), Widget.getWidget(Widget.Type.IMAGE).getWidgetId());
+
+
+                //Validate vserver->Flavor
+                List<ModelElement> matchedFlavorElements =
+                    getModelElementbyRelationshipValue(vserverWidgetModelElements,
+                        Widget.getWidget(Widget.Type.FLAVOR).getId());
+                validateMatchedModelElementsInService(matchedFlavorElements,
+                    Widget.getWidget(Widget.Type.FLAVOR).getName());
+                validateWidgetIds(matchedFlavorElements, Widget.getWidget(Widget.Type.FLAVOR).getName(),
+                    Widget.getWidget(Widget.Type.FLAVOR).getWidgetId());
+
+                //Validate vserver->Tenant
+                List<ModelElement> matchedTenantElements =
+                    getModelElementbyRelationshipValue(vserverWidgetModelElements,
+                        Widget.getWidget(Widget.Type.TENANT).getId());
+                validateMatchedModelElementsInService(matchedTenantElements,
+                    Widget.getWidget(Widget.Type.TENANT).getName());
+                validateWidgetIds(matchedTenantElements, Widget.getWidget(Widget.Type.TENANT).getName(),
+                    Widget.getWidget(Widget.Type.TENANT).getWidgetId());
+
+                //Validate vserver->l-interface
+                if (vfModuleMembers.containsKey("l-interface")) {
+                  List<ModelElement> matchedLinterfaceElements =
+                      getModelElementbyRelationshipValue(vserverWidgetModelElements,
+                          Widget.getWidget(Widget.Type.LINT).getId());
+                  validateMatchedModelElementsInService(matchedLinterfaceElements,
+                      Widget.getWidget(Widget.Type.LINT).getName());
+                  validateWidgetIds(matchedLinterfaceElements, Widget.getWidget(Widget.Type.LINT).getName(),
+                      Widget.getWidget(Widget.Type.LINT).getWidgetId());
+                }
+                //Validate vserver->volume
+                if (vfModuleMembers.containsKey("volume")) {
+                  List<ModelElement> matchedVolumeElements =
+                      getModelElementbyRelationshipValue(vserverWidgetModelElements,
+                          Widget.getWidget(Widget.Type.VOLUME).getId());
+                  validateMatchedModelElementsInService(matchedVolumeElements,
+                      Widget.getWidget(Widget.Type.VOLUME).getName());
+                  validateWidgetIds(matchedVolumeElements, Widget.getWidget(Widget.Type.VOLUME).getName(),
+                      Widget.getWidget(Widget.Type.VOLUME).getWidgetId());
+                }
+              }
+            }
+          }
+        } else {
+          System.out.println("Resource mapping not found for " + resourceNameVersionId);
+        }
+      }
+
+    } catch (IllegalArgumentException e) {
+      Assert.fail(e.getMessage());    //Can come while populating metadata
+    }
+
+  }
+
+  private void validateMatchedModelElementsInService(List<ModelElement> matchedModelElements,
+                                                     String modelType) {
+    if (matchedModelElements.isEmpty()) {
+      Assert.fail(modelType + " not present ");
+    }
+    if (matchedModelElements.size() > 1) {
+      Assert.fail("More than one " + modelType + " present ");
+    }
+  }
+
+  private Map<String, String> getNodeTemplateTypeStore(ToscaTemplate toscaTemplate) {
+    if (toscaTemplate.getTopology_template() != null) {
+      Map<String, NodeTemplate> nodeTemplateMap =
+          toscaTemplate.getTopology_template().getNode_templates();
+      Map<String, String> nodeTemplateIdTypeStore = new LinkedHashMap<>();
+      if (nodeTemplateMap != null) {
+        for (Map.Entry<String, NodeTemplate> e : nodeTemplateMap.entrySet()) {
+          String uuid = e.getValue().getMetadata().get("resourceUUID");
+          if (GeneratorUtil.isEmpty(uuid)) {
+            uuid = e.getValue().getMetadata().get("UUID");
+            if (GeneratorUtil.isEmpty(uuid)) {
+              Assert.fail("UUID Not found");
+            }
+          }
+          if(e.getValue().getType().contains("org.openecomp.resource.vf.")&& (e.getValue()
+              .getMetadata().get("category").equals("Allotted Resource")))
+          {
+            e.getValue().setType("org.openecomp.resource.vf.allottedResource");
+          }
+          nodeTemplateIdTypeStore.put(uuid, e.getValue().getType());
+          resourcesVersion.put(uuid,e.getValue().getMetadata().get
+              ("version"));
+          //Populate invraintUuId for V9
+          String invUuId = e.getValue().getMetadata().get("invariantUUID");
+          nodeTemplateIdTypeStore.put(uuid+"-INV_UID" , invUuId);
+        }
+      }
+      return nodeTemplateIdTypeStore;
+    } else {
+      return null;
+    }
+  }
+
+  private Map<String, String> getGroupsTypeStore(ToscaTemplate toscaTemplate) {
+    if (toscaTemplate.getTopology_template() != null) {
+      Map<String, GroupDefinition> groupDefinitionMap =
+          toscaTemplate.getTopology_template().getGroups();
+      Map<String, String> groupDefinitionIdTypeStore = new LinkedHashMap<>();
+      if (groupDefinitionMap != null) {
+        for (Map.Entry<String, GroupDefinition> e : groupDefinitionMap.entrySet()) {
+          if (e.getValue().getType().contains("org.openecomp.groups.VfModule")) {
+            String uuid = e.getValue().getMetadata().get("vfModuleModelUUID");
+            if (GeneratorUtil.isEmpty(uuid)) {
+              uuid = e.getValue().getMetadata().get("UUID");
+              if (GeneratorUtil.isEmpty(uuid)) {
+                Assert.fail("UUID Not found");
+              }
+            }
+            groupDefinitionIdTypeStore.put(uuid, e.getValue().getType());
+          }
+        }
+      }
+      return groupDefinitionIdTypeStore;
+    } else {
+      return null;
+    }
+
+  }
+
+  private void validateServiceModelMetadata(Service serviceToscaModel, Model generatedAAIModel) {
+    ModelVer modelVersion =  generatedAAIModel.getModelVers().getModelVer().get(0);
+    Assert.assertEquals(serviceToscaModel.getModelNameVersionId(),
+        modelVersion.getModelVersionId());
+    Assert.assertEquals(serviceToscaModel.getModelId(), generatedAAIModel.getModelInvariantId());
+    Assert.assertEquals(serviceToscaModel.getModelName(), modelVersion.getModelName());
+    Assert.assertEquals(additionalParams.get(AdditionalParams.ServiceVersion.getName()), modelVersion
+        .getModelVersion());
+    Assert.assertEquals(serviceToscaModel.getModelDescription(),
+        modelVersion.getModelDescription());
+
+  }
+
+  private void validateResourceModelMetadata(Resource resouerceToscaModel,
+                                             Model generatedAAIModel) {
+    ModelVer modelVersion =  generatedAAIModel.getModelVers().getModelVer().get(0);
+    Assert.assertEquals(resouerceToscaModel.getModelNameVersionId(),
+        modelVersion.getModelVersionId());
+    Assert.assertEquals(resouerceToscaModel.getModelId(), generatedAAIModel.getModelInvariantId());
+    Assert.assertEquals(resouerceToscaModel.getModelName(), modelVersion.getModelName());
+    Assert
+        .assertEquals(resouerceToscaModel.getModelVersion(), modelVersion.getModelVersion());
+    Assert.assertEquals(resouerceToscaModel.getModelDescription(),
+        modelVersion.getModelDescription());
+
+  }
+
+  private void validateVFModelMetadata(Map<String, String> vfModuleModelMetadata,
+                                       Model generatedAAIModel) {
+    ModelVer modelVersion =  generatedAAIModel.getModelVers().getModelVer().get(0);
+    Assert.assertEquals(vfModuleModelMetadata.get("vfModuleModelUUID"),
+        modelVersion.getModelVersionId());
+    Assert.assertEquals(vfModuleModelMetadata.get("vfModuleModelInvariantUUID"),
+        generatedAAIModel.getModelInvariantId());
+    Assert.assertEquals(vfModuleModelMetadata.get("vfModuleModelName"),
+        modelVersion.getModelName());
+    Assert.assertEquals(vfModuleModelMetadata.get("vfModuleModelVersion"),
+        modelVersion.getModelVersion());
+    Assert.assertEquals(vfModuleModelMetadata.get("vf_module_description"),
+        modelVersion.getModelDescription());
+  }
+
+  private Model getAAIModelByNameVersionId(String nameVersionId,
+                                           Map<String, Model> outputArtifactMap) {
+    return outputArtifactMap.get(nameVersionId);
+  }
+
+  private List<ModelElement> getModelElementbyRelationshipValue(ModelElements modelElements,
+                                                                String relationshipValue) {
+    List<ModelElement> matchedModelElements = new ArrayList<>();
+    if (modelElements != null) {
+      List<ModelElement> modelElementList = modelElements.getModelElement();
+      for (ModelElement element : modelElementList) {
+        List<Relationship> relationshipList = element.getRelationshipList().getRelationship();
+        for (Relationship r : relationshipList) {
+          List<RelationshipData> relationshipDataList = r.getRelationshipData();
+          for (RelationshipData relationshipData : relationshipDataList) {
+            if (relationshipData.getRelationshipValue().equals(relationshipValue)) {
+              matchedModelElements.add(element);
+            }
+          }
+        }
+      }
+    }
+    return matchedModelElements;
+  }
+
+  private Map<String, Model> populateAAIGeneratedModelStore(List<Artifact> resultData) throws IOException {
+    Map<String, Model> outputArtifactMap = new HashMap<>();
+    for (Artifact outputArtifact : resultData) {
+      if (outputArtifact.getType().equals(ArtifactType.MODEL_INVENTORY_PROFILE.name())) {
+        byte[] decodedPayload = GeneratorUtil.decoder(outputArtifact.getPayload());
+        Model aaiModel = getUnmarshalledArtifactModel(new String(decodedPayload));
+        List<ModelVer> modelVersions =  aaiModel.getModelVers().getModelVer();
+        outputArtifactMap.put(modelVersions.get(0).getModelVersionId(), aaiModel);
+      }
+    }
+    return outputArtifactMap;
+  }
+
+  private Model getUnmarshalledArtifactModel(String aaiModel) throws IOException {
+
+    try {
+
+      JAXBContext jaxbContext = JAXBContext.newInstance(Model.class);
+      Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
+
+      try (InputStream aaiModelStream = new ByteArrayInputStream(aaiModel.getBytes())) {
+        return (Model) unmarshaller.unmarshal(aaiModelStream);
+      }
+
+    } catch (JAXBException e) {
+      e.printStackTrace();
+    }
+
+    return null;
+  }
+
+  /**
+   * Get the tosca java model from the tosca input artifact
+   *
+   * @param input Input tosca file and its metadata information as {@link Artifact} object
+   * @return Translated {@link ToscaTemplate tosca} object
+   */
+  private ToscaTemplate getToscaModel(Artifact input) throws SecurityException {
+    byte[] decodedInput = GeneratorUtil.decoder(input.getPayload());
+    String checksum = GeneratorUtil.checkSum(decodedInput);
+    if (checksum.equals(input.getChecksum())) {
+      try {
+        return GeneratorUtil.translateTosca(new String(decodedInput), ToscaTemplate.class);
+      } catch (Exception e) {
+        e.printStackTrace();
+        throw new IllegalArgumentException(
+            String.format(GeneratorConstants.GENERATOR_AAI_ERROR_INVALID_TOSCA, input.getName()));
+      }
+    } else {
+      throw new SecurityException(
+          String.format(GeneratorConstants.GENERATOR_AAI_ERROR_CHECKSUM_MISMATCH, input.getName()));
+    }
+  }
+
+  /**
+   * Identify the service tosca artifact from the list of translated tosca inputs
+   *
+   * @param input List of translated {@link ToscaTemplate tosca} object models
+   * @return Identified service {@link ToscaTemplate tosca}
+   */
+  private ToscaTemplate getServiceTosca(List<ToscaTemplate> input) {
+    Iterator<ToscaTemplate> iter = input.iterator();
+    while (iter.hasNext()) {
+      ToscaTemplate tosca = iter.next();
+      if (tosca.isService()) {
+        iter.remove();
+        return tosca;
+      }
+    }
+    return null;
+  }
+
+  private Map<String, String> getVFModuleMetadataTosca(ToscaTemplate toscaTemplate,
+                                                       String vfModuleModelUUID) {
+    Map<String, GroupDefinition> groupDefinitionMap =
+        toscaTemplate.getTopology_template().getGroups();
+    Map<String, String> vfModuleModelMetadata = new LinkedHashMap<>();
+    for (Map.Entry<String, GroupDefinition> e : groupDefinitionMap.entrySet()) {
+      if (e.getValue().getType().contains("org.openecomp.groups.VfModule")) {
+        String uuid = e.getValue().getMetadata().get("vfModuleModelUUID");
+        if (Objects.equals(uuid, vfModuleModelUUID)) {
+          vfModuleModelMetadata = e.getValue().getMetadata();
+          vfModuleModelMetadata.put("vf_module_description",
+              (String) e.getValue().getProperties().get("vf_module_description"));
+        }
+      }
+    }
+    return vfModuleModelMetadata;
+  }
+
+  private Map<String, Object> getVFModuleMembersTosca(ToscaTemplate toscaTemplate,
+                                                      String vfModuleModelUUID) {
+    Map<String, GroupDefinition> groupDefinitionMap =
+        toscaTemplate.getTopology_template().getGroups();
+    Map<String, NodeTemplate> nodeTemplateMaps =
+        toscaTemplate.getTopology_template().getNode_templates();
+    Map<String, Object> vfModuleMembers = new LinkedHashMap<>();
+    List<String> vfModuleModelMetadata;
+    for (Map.Entry<String, GroupDefinition> e : groupDefinitionMap.entrySet()) {
+      if (e.getValue().getType().contains("org.openecomp.groups.VfModule")) {
+        String uuid = e.getValue().getMetadata().get("vfModuleModelUUID");
+        if (Objects.equals(uuid, vfModuleModelUUID)) {
+          vfModuleModelMetadata = e.getValue().getMembers();
+          if (vfModuleModelMetadata !=null) {
+            for (Object key : vfModuleModelMetadata) {
+              NodeTemplate nodeTemplate = nodeTemplateMaps.get(key);
+              String nodetype = null;
+              if (nodeTemplate != null) {
+                nodetype = nodeTemplate.getType();
+              }
+              if (nodetype != null) {
+                String widgetType = membersType(nodetype);
+                if (widgetType != null) {
+                  vfModuleMembers.put(widgetType, key);
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+
+    return vfModuleMembers;
+  }
+
+
+  private String membersType(String toscaType) {
+    String modelToBeReturned = null;
+    while (toscaType != null && toscaType.lastIndexOf(".") != -1 && modelToBeReturned == null) {
+
+      switch (toscaType) {
+        case "org.openecomp.resource.vf.allottedResource":
+          modelToBeReturned = "allotted-resource";
+          break;
+        case "org.openecomp.resource.vfc":
+          modelToBeReturned = "vserver";
+          break;
+        case "org.openecomp.resource.cp":
+        case "org.openecomp.cp":
+          modelToBeReturned = "l-interface";
+          break;
+        case "org.openecomp.resource.vl":
+          modelToBeReturned = "l3-network";
+          break;
+        case "org.openecomp.resource.vf":
+          modelToBeReturned = "generic-vnf";
+          break;
+        case "org.openecomp.groups.VfModule":
+          modelToBeReturned = "vf-module";
+          break;
+        case "org.openecomp.resource.vfc.nodes.heat.cinder":
+          modelToBeReturned = "volume";
+          break;
+        default:
+          modelToBeReturned = null;
+          break;
+      }
+
+      toscaType = toscaType.substring(0, toscaType.lastIndexOf("."));
+    }
+    return modelToBeReturned;
+  }
+
+  private List<Artifact> init(String aaiResourceBasePaths) {
+    List<Artifact> inputArtifacts1 = new ArrayList<>();
+    try {
+
+      String[] resourceFileList = {};
+      URL resourceDirUrl = this.getClass().getClassLoader().getResource(aaiResourceBasePaths);
+      if (resourceDirUrl != null && resourceDirUrl.getProtocol().equals("file")) {
+        resourceFileList = new File(resourceDirUrl.toURI()).list();
+      } else {
+        Assert.fail("Invalid resource directory");
+      }
+
+      for (String aResourceFileList : resourceFileList) {
+        File resourceFile = new File(
+                this.getClass().getClassLoader().getResource(aaiResourceBasePaths + aResourceFileList)
+                        .getPath());
+
+        //convert service tosca file into array of bytes
+        byte[] payload = new byte[(int) resourceFile.length()];
+        try (FileInputStream fileInputStream = new FileInputStream(resourceFile)) {
+          fileInputStream.read(payload);
+        }
+
+        String checksum = GeneratorUtil.checkSum(payload);
+        byte[] encodedPayload = GeneratorUtil.encode(payload);
+        Artifact artifact =
+                new Artifact(aaiArtifactType, aaiArtifactGroupType, checksum, encodedPayload);
+        artifact.setName(aResourceFileList);
+        artifact.setLabel(aResourceFileList);
+        artifact.setDescription(aResourceFileList);
+        artifact.setVersion("1.0");
+        inputArtifacts1.add(artifact);
+
+      }
+    } catch (Exception e) {
+      //e.printStackTrace();
+      Assert.fail(e.getMessage());
+    }
+    return inputArtifacts1;
+  }
+
+  private void loadConfigFromClasspath(Properties properties) throws IOException {
+    String configLocation = System.getProperty("artifactgenerator.config");
+    if (configLocation != null) {
+      File file = new File(configLocation);
+      if (file.exists()) {
+        properties.load(new FileInputStream(file));
+      }
+    }
+  }
+
+  public  void testResourceTosca(Iterator<ToscaTemplate> itr, Map<String, Model>
+      outputArtifactMap) {
+    while(itr.hasNext()){
+      ToscaTemplate toscaTemplate = itr.next();
+      String resourceVersion=resourcesVersion.get(toscaTemplate.getMetadata().get("UUID"));
+      toscaTemplate.getMetadata().put("version", resourceVersion);
+      if("VF".equals(toscaTemplate.getMetadata().get("type")) && !("Allotted Resource".equals
+          (toscaTemplate.getMetadata().get("category"))) ){
+        testVfTosca(outputArtifactMap, toscaTemplate);
+      } else if("VF".equals(toscaTemplate.getMetadata().get("type")) && ("Allotted Resource".equals
+          (toscaTemplate.getMetadata().get("category"))) ){
+        testAllottedResourceTosca(outputArtifactMap, toscaTemplate);
+      } else if("VL".equals(toscaTemplate.getMetadata().get("type"))){
+        testL3NetworkResourceTosca(outputArtifactMap, toscaTemplate);
+      }
+    }
+  }
+
+  private void readPayloadFromResource(List<Artifact> inputArtifacts, String file) throws IOException {
+    try (InputStream stream = ArtifactGenerationServiceTest.class.getResourceAsStream("/" + file)) {
+      readPayload(inputArtifacts, stream, file);
+    }
+  }
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/aai/service_vmme_template_1.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/aai/service_vmme_template_1.yml
new file mode 100644
index 0000000..c740f67
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/aai/service_vmme_template_1.yml
@@ -0,0 +1,98 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  type: Service
+  name: vMME_Service
+  description: vMME_Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+    
+topology_template:
+
+  inputs:    
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity 
+      
+  node_templates:
+
+    mme: # vMME VNF
+      type: org.openecomp.resource.vf.vmme
+
+      metadata:
+          invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version: 3.0
+          name: vMME_VF
+          description: vMME_VF
+          type: VF
+          category: Application L4+
+          subcategory: Firewall
+          resourceVendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/aai/vf_vmme_template_1.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/aai/vf_vmme_template_1.yml
new file mode 100644
index 0000000..6aee48b
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/aai/vf_vmme_template_1.yml
@@ -0,0 +1,1299 @@
+--- 
+description: "VF Template for pseodo vMME"
+imports: 
+  NovaServerGlobalTypes: 
+    file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata: 
+  category: "Application L4+"
+  description: vMME_VF
+  invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+  name: vMME_VF
+  subcategory: Firewall
+  type: VF
+  UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+  resourceVendor: Ericsson
+topology_template: 
+  groups: 
+    vfmoduleVmmeModule-1: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      metadata: 
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelName: "vMME::module-1"
+        vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+      properties: 
+        artifacts: 
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+        availability_zone_count: 2
+        contrail_service_instance: true
+        vf_module_description: "vMME expansion VF Module"
+        vf_module_label: "vMME Expansion VF Module"
+        vf_module_type: Expansion
+        volume_group: false
+      type: org.openecomp.groups.VfModule
+    vmme_small: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      properties: 
+        description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+        heat_file: ../Artifacts/vmme_small.yml
+      type: org.openecomp.groups.heat.HeatStack
+    vmme_small_create_fsb: 
+      members: 
+        - FSB1_volume
+        - FSB2_volume
+      properties: 
+        description: "server template for vMME"
+        heat_file: ../Artifacts/vmme_small_create_fsb.yml
+      type: org.openecomp.groups.heat.HeatStack
+  inputs: 
+    Internal1_net_cidr: 
+      default: 169.253.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_gateway_ip: 
+      default: "169.253.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_cidr: 
+      default: 169.255.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_gateway_ip: 
+      default: "169.255.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    fsb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb1_vfc_image_name: 
+      default: MME_FSB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    fsb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    fsb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb2_vfc_flavor: 
+      defualt: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb2_vfc_image_name: 
+      default: MME_FSB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB002
+      description: "VFC instance name"
+      type: string
+    fsb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb1_vfc_image_name: 
+      default: MME_GPB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb2_vfc_image_name: 
+      default: MME_GPB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb1_vfc_image_name: 
+      default: MME_NCB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb2_vfc_image_name: 
+      default: MME_NCB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    network_deployment_node: 
+      description: "The target LCP node for deployment of this Network instance"
+      type: string
+    oam_net_id: 
+      default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+      description: "uuid of oam network"
+      hidden: false
+      immutable: false
+      type: string
+    vlc1_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc1_vfc_image_name: 
+      default: MME_VLC1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    vlc2_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc2_vfc_image_name: 
+      default: MME_VLC2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+  node_templates: 
+    FSB1: 
+      capabilities: 
+        monitoring_capabilty: 
+          properties: 
+            name: high_cpu
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    FSB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    Internal1_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal1_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal1_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal1_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    Internal2_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal2_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal2_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal2_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    NCB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    NCB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc1_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc2_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    fsb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    oam_net: 
+      metadata: 
+        category: VL
+        description: "Mobility OAM Network"
+        invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+        name: "Mobility OAM Network"
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+        resourceVendor: AT&T
+        version: 2.0
+      properties: 
+        flow_pattern: E-LAN
+        layer_protocol: IP
+        network_id: 
+          get_input: oam_net_id
+        network_technology: Contrail
+        network_type: vIPR_ATM_OAM
+        test_access: none
+      type: org.openecomp.resource.vl.OAM
+    vlc1_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+  policies: 
+    - 
+      mme_autoscale_policy: 
+        properties: 
+          factor: cpu_load
+          increment: 1
+          max_instances: 4
+          min_instances: 1
+          threshold: 80%
+        target: 
+          - vfmoduleVmmeModule-1
+        type: org.openecomp.policy.Autoscaling
+  substitution_mapping: 
+    requirements: 
+      - 
+        vlc1_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc2_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_a.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_b.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+    type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/aai2/resource-AllottedResource-template.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/aai2/resource-AllottedResource-template.yml
new file mode 100644
index 0000000..c80e701
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/aai2/resource-AllottedResource-template.yml
@@ -0,0 +1,78 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+  UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+  name: Allotted Resource
+  description: This is a VF - Allotted resource
+  type: VF
+  category: Allotted Resource
+  subcategory: Allotted Resource
+  resourceVendor: '1'
+  resourceVendorRelease: '1'
+imports:
+- Alloted resource:
+    file: resource-AllotedResource-template.yml
+topology_template:
+  node_templates:
+    Alloted resource 1:
+      type: org.openecomp.resource.vfc.AllottedResource
+      metadata:
+        invariantUUID: 666b409b-5614-41a8-945e-a53d68f5d439
+        UUID: df0c1c4d-1756-4b2a-998e-73f9f4d77afa
+        version: '1.0'
+        name: Alloted resource
+        description: This is a VFC- Allotted resource
+        type: VFC
+        category: Allotted Resource
+        subcategory: Allotted Resource
+      properties:
+        role: name
+        ecomp_naming:
+          naming_policy: test
+          ecomp_generated_naming: false
+          supplemental_data:
+            Key1: key1
+        providing_service_invariant_uuid: 34a4d119-06bc-4ab4-8c5a-a498d638297c
+        min_instances: 1
+        max_instances: 1
+        providing_service_uuid: e14a509f-b611-4b30-b38c-bc7f11b679aa
+        providing_service_name: vVIGaaS
+        ecomp_homing:
+          instance_node_target: Test
+          homing_policy: Test
+          supplemental_data:
+            Key: key
+          ecomp_selected_instance_node_target: false
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.AllottedResource
+    capabilities:
+      Alloted resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Alloted resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Alloted resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/aai2/resource-Extvl-template.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/aai2/resource-Extvl-template.yml
new file mode 100644
index 0000000..512d62b
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/aai2/resource-Extvl-template.yml
@@ -0,0 +1,61 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: f148dbb0-8c53-466d-9687-791c0e9d40cf
+  UUID: 3f8fa4d2-2b86-4b36-bbc8-ffb8f9f57468
+  name: ExtVL
+  description: OPENECOMP generic virtual link (network) base type for all other service-level and global networks
+  type: VL
+  category: Generic
+  subcategory: Network Elements
+  resourceVendor: OPENECOMP (Tosca)
+  resourceVendorRelease: 1.0.0.wd03
+node_types:
+  org.openecomp.resource.vl.extVL:
+    derived_from: tosca.nodes.Root
+    description: OPENECOMP generic virtual link (network) base type for all other service-level and global networks
+    properties:
+      physical_network:
+        type: org.openecomp.datatypes.network.PhysicalNetwork
+      network_role:
+        type: string
+        description: |
+          Unique label that defines the role that this network performs.   example: vce oam network, vnat sr-iov1 network
+      network_assignments:
+        type: org.openecomp.datatypes.network.NetworkAssignments
+      network_flows:
+        type: org.openecomp.datatypes.network.NetworkFlows
+      vl_artifacts:
+        type: map
+        description: List of artifacts associated with the VL
+        entry_schema:
+          type: org.openecomp.datatypes.Artifact
+      network_scope:
+        type: string
+        description: |
+          Uniquely identifies the network scope. Valid values for the network scope   includes: VF - VF-level network. Intra-VF network which connects the VFCs (VMs) inside the VF. SERVICE - Service-level network. Intra-Service network which connects  the VFs within the service GLOBAL - Global network which can be shared by multiple services
+      network_ecomp_naming:
+        type: org.openecomp.datatypes.EcompNaming
+      network_type:
+        type: string
+        description: OPENECOMP supported network types.
+      network_technology:
+        type: string
+        description: OPENECOMP supported network technology
+      network_homing:
+        type: org.openecomp.datatypes.EcompHoming
+    capabilities:
+      virtual_linkable:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 1
+        - UNBOUNDED
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/aai2/service-ServiceWithAllotedVfAndExvl-template.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/aai2/service-ServiceWithAllotedVfAndExvl-template.yml
new file mode 100644
index 0000000..dbd0396
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/aai2/service-ServiceWithAllotedVfAndExvl-template.yml
@@ -0,0 +1,90 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: e8a6c85c-429f-47cd-b594-376a0ffccd29
+  UUID: 14fd2446-691a-4d7d-8ef4-ece19c3176f5
+  name: Service with alloted VF and  exVL
+  description: 'This service contains two instances : 1. Allotted resource VF 2. ExVL
+    - Network'
+  type: Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+imports:
+- ExtVL:
+    file: resource-Extvl-template.yml
+- Allotted Resource:
+    file: resource-AllottedResource-template.yml
+topology_template:
+  node_templates:
+    ExtVL 1:
+      type: org.openecomp.resource.vl.extVL
+      metadata:
+        invariantUUID: f148dbb0-8c53-466d-9687-791c0e9d40cf
+        UUID: 3f8fa4d2-2b86-4b36-bbc8-ffb8f9f57468
+        version: '2.0'
+        name: ExtVL
+        description: OPENECOMP generic virtual link (network) base type for all other service-level and global networks
+        type: VL
+        category: Generic
+        subcategory: Network Elements
+    Allotted Resource 2:
+      type: org.openecomp.resource.vf.AllottedResource
+      metadata:
+        invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+        UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+        version: '0.1'
+        name: Allotted Resource
+        description: This is a VF - Allotted resource
+        type: VF
+        category: Allotted Resource
+        subcategory: Allotted Resource
+  substitution_mappings:
+    node_type: org.openecomp.service.ServiceWithAllotedVfAndExvl
+    capabilities:
+      ExtVL 1.virtual_linkable:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      Allotted Resource 2.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      ExtVL 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      ExtVL 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Allotted Resource 2.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Allotted Resource 2.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/aai3/resource-IpMuxDemux-template.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/aai3/resource-IpMuxDemux-template.yml
new file mode 100644
index 0000000..4549306
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/aai3/resource-IpMuxDemux-template.yml
@@ -0,0 +1,80 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: 707b2850-e830-4b00-9902-879f44ac05a4
+  UUID: 495b483b-282a-45df-bbfe-63d1d1d80813
+  name: IP_Mux_Demux
+  description: IP_Mux_Demux
+  type: VF
+  category: Allotted Resource
+  subcategory: IP Mux Demux
+  resourceVendor: '1'
+  resourceVendorRelease: '1'
+imports:
+- Allotedresource:
+    file: resource-Allotedresource-template.yml
+topology_template:
+  inputs:
+    role:
+      type: string
+    ecomp_naming:
+      type: string
+    max_instances:
+      type: string
+    min_instances:
+      type: string
+    ecomp_homing:
+      type: string
+  node_templates:
+    Alloted resource 1:
+      type: org.openecomp.resource.vfc.AllottedResource
+      metadata:
+        invariantUUID: bc0bebc1-6dc1-4637-883e-aed77bffd63c
+        UUID: 7763d3a3-048f-4e5b-96c5-e7818dbc066a
+        customizationUUID: 5eac2a36-bcb5-4158-ace4-802b81e87248
+        version: '1.0'
+        name: Allotedresource
+        description: Allotedresource
+        type: VFC
+        category: Allotted Resource
+        subcategory: IP Mux Demux
+      properties:
+        ecomp_naming:
+          naming_policy:
+            get input: ecomp_naming
+        providing_service_invariant_uuid: e42ea8ff-1862-43f4-a597-4b885cf3c6e5
+        min_instances: 1
+        max_instances: 1
+        providing_service_uuid: 2fb4b63d-7ec8-4fc0-98c7-a1c51fb4b794
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.IpMuxDemux
+    capabilities:
+      Alloted resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Alloted resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Alloted resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/aai3/resource-ServiceAdmin-template.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/aai3/resource-ServiceAdmin-template.yml
new file mode 100644
index 0000000..549c18b
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/aai3/resource-ServiceAdmin-template.yml
@@ -0,0 +1,81 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: 0df08d3e-9701-4f5a-b3ed-82a0b504b366
+  UUID: a9c6246c-0807-4a43-a64c-442a170c2088
+  name: service_admin
+  description: service_admin
+  type: VF
+  category: Allotted Resource
+  subcategory: Service admin
+  resourceVendor: '1'
+  resourceVendorRelease: '1'
+imports:
+- Allotedresource:
+    file: resource-Allotedresource-template.yml
+topology_template:
+  inputs:
+    role:
+      type: string
+    ecomp_naming:
+      type: string
+    max_instances:
+      type: string
+    min_instances:
+      type: string
+    ecomp_homing:
+      type: string
+  node_templates:
+    Alloted resource 1:
+      type: org.openecomp.resource.vfc.AllottedResource
+      metadata:
+        invariantUUID: bc0bebc1-6dc1-4637-883e-aed77bffd63c
+        UUID: 7763d3a3-048f-4e5b-96c5-e7818dbc066a
+        customizationUUID: f61f785d-2c82-4d6d-9184-8cbdf2df4da0
+        version: '1.0'
+        name: Allotedresource
+        description: Allotedresource
+        type: VFC
+        category: Allotted Resource
+        subcategory: Service admin
+      properties:
+        ecomp_naming:
+          naming_policy:
+            get input: ecomp_naming
+        providing_service_invariant_uuid: e42ea8ff-1862-43f4-a597-4b885cf3c6e5
+        min_instances: 1
+        max_instances: 1
+        providing_service_uuid: 2fb4b63d-7ec8-4fc0-98c7-a1c51fb4b794
+        providing_service_name: HNPortalaaS
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.ServiceAdmin
+    capabilities:
+      Alloted resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Alloted resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Alloted resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/aai3/resource-TunnelXconn-template.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/aai3/resource-TunnelXconn-template.yml
new file mode 100644
index 0000000..cf97321
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/aai3/resource-TunnelXconn-template.yml
@@ -0,0 +1,81 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: 63b95d9a-9c89-40d3-a646-36a1418c5246
+  UUID: ae79ba1b-5d12-4813-b01c-755fa6c800bb
+  name: Tunnel_XConn
+  description: Tunnel_XConn
+  type: VF
+  category: Allotted Resource
+  subcategory: Tunnel XConnect
+  resourceVendor: '1'
+  resourceVendorRelease: '1'
+imports:
+- Allotedresource:
+    file: resource-Allotedresource-template.yml
+topology_template:
+  inputs:
+    role:
+      type: string
+    ecomp_naming:
+      type: string
+    min_instances:
+      type: string
+    max_instances:
+      type: string
+    ecomp_homing:
+      type: string
+  node_templates:
+    Alloted resource 1:
+      type: org.openecomp.resource.vfc.AllottedResource
+      metadata:
+        invariantUUID: bc0bebc1-6dc1-4637-883e-aed77bffd63c
+        UUID: 7763d3a3-048f-4e5b-96c5-e7818dbc066a
+        customizationUUID: 22ca20ca-1577-46d3-b3ef-77483cca37d6
+        version: '1.0'
+        name: Allotedresource
+        description: Allotedresource
+        type: VFC
+        category: Allotted Resource
+        subcategory: Tunnel XConnect
+      properties:
+        ecomp_naming:
+          naming_policy:
+            get input: ecomp_naming
+        providing_service_invariant_uuid: 34a4d119-06bc-4ab4-8c5a-a498d638297c
+        min_instances: 1
+        max_instances: 1
+        providing_service_uuid: e14a509f-b611-4b30-b38c-bc7f11b679aa
+        providing_service_name: vVIGaaS
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.TunnelXconn
+    capabilities:
+      Alloted resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Alloted resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Alloted resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/aai3/resource-VhnfNonHeat-template.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/aai3/resource-VhnfNonHeat-template.yml
new file mode 100644
index 0000000..8ec1c19
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/aai3/resource-VhnfNonHeat-template.yml
@@ -0,0 +1,24 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: f61adc31-6004-4377-a661-090f59e6b32a
+  UUID: 2118e830-5e0d-409a-9d7a-63b6a72d6f5f
+  name: vHNF non Heat
+  description: vHNF non Heat
+  type: VF
+  category: Generic
+  subcategory: Network Elements
+  resourceVendor: '1'
+  resourceVendorRelease: '1'
+topology_template:
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.VhnfNonHeat
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/aai3/service-SdWan-template.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/aai3/service-SdWan-template.yml
new file mode 100644
index 0000000..bc3ab6d
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/aai3/service-SdWan-template.yml
@@ -0,0 +1,233 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: 3d8b7a76-7c47-4974-b5b9-e24c54b817a2
+  UUID: eb31504f-9f60-4936-a2f2-8ac592b611a6
+  name: SD-WAN
+  description: SD-WAN
+  type: Service
+  category: Network L4+
+  serviceEcompNaming: false
+  serviceHoming: false
+imports:
+- service_admin:
+    file: resource-ServiceAdmin-template.yml
+- Tunnel_XConn:
+    file: resource-TunnelXconn-template.yml
+- vHNF non Heat:
+    file: resource-VhnfNonHeat-template.yml
+- IP_Mux_Demux:
+    file: resource-IpMuxDemux-template.yml
+topology_template:
+  node_templates:
+    Sec_IP_Mux_Demux:
+      type: org.openecomp.resource.vf.IpMuxDemux
+      metadata:
+        invariantUUID: 707b2850-e830-4b00-9902-879f44ac05a4
+        UUID: 495b483b-282a-45df-bbfe-63d1d1d80813
+        customizationUUID: f4b764bb-6721-4219-8c69-7ce61969f755
+        version: '0.1'
+        name: IP_Mux_Demux
+        description: IP_Mux_Demux
+        type: VF
+        category: Allotted Resource
+        subcategory: IP Mux Demux
+    Pri_Tunnel_XConn:
+      type: org.openecomp.resource.vf.TunnelXconn
+      metadata:
+        invariantUUID: 63b95d9a-9c89-40d3-a646-36a1418c5246
+        UUID: ae79ba1b-5d12-4813-b01c-755fa6c800bb
+        customizationUUID: 96d0bbf6-d9f7-441d-8f00-67d79dbf30de
+        version: '0.1'
+        name: Tunnel_XConn
+        description: Tunnel_XConn
+        type: VF
+        category: Allotted Resource
+        subcategory: Tunnel XConnect
+    Pri_service_admin:
+      type: org.openecomp.resource.vf.ServiceAdmin
+      metadata:
+        invariantUUID: 0df08d3e-9701-4f5a-b3ed-82a0b504b366
+        UUID: a9c6246c-0807-4a43-a64c-442a170c2088
+        customizationUUID: 6b4a2a55-3b82-4799-8329-4fc2939fd5b5
+        version: '0.1'
+        name: service_admin
+        description: service_admin
+        type: VF
+        category: Allotted Resource
+        subcategory: Service admin
+    Pri_IP_Mux_Demux:
+      type: org.openecomp.resource.vf.IpMuxDemux
+      metadata:
+        invariantUUID: 707b2850-e830-4b00-9902-879f44ac05a4
+        UUID: 495b483b-282a-45df-bbfe-63d1d1d80813
+        customizationUUID: d8f656d9-179d-4f02-9a46-8af7421eb2a0
+        version: '0.1'
+        name: IP_Mux_Demux
+        description: IP_Mux_Demux
+        type: VF
+        category: Allotted Resource
+        subcategory: IP Mux Demux
+    Sec_Tunnel_XConn:
+      type: org.openecomp.resource.vf.TunnelXconn
+      metadata:
+        invariantUUID: 63b95d9a-9c89-40d3-a646-36a1418c5246
+        UUID: ae79ba1b-5d12-4813-b01c-755fa6c800bb
+        customizationUUID: b432136d-0a2a-460b-a3da-f921e1e0dcfa
+        version: '0.1'
+        name: Tunnel_XConn
+        description: Tunnel_XConn
+        type: VF
+        category: Allotted Resource
+        subcategory: Tunnel XConnect
+    vHNF non Heat 22:
+      type: org.openecomp.resource.vf.VhnfNonHeat
+      metadata:
+        invariantUUID: f61adc31-6004-4377-a661-090f59e6b32a
+        UUID: 2118e830-5e0d-409a-9d7a-63b6a72d6f5f
+        customizationUUID: 9c7a5f7f-6b17-4066-a6f1-094ea925495b
+        version: '0.1'
+        name: vHNF non Heat
+        description: vHNF non Heat
+        type: VF
+        category: Generic
+        subcategory: Network Elements
+    Sec_service_admin:
+      type: org.openecomp.resource.vf.ServiceAdmin
+      metadata:
+        invariantUUID: 0df08d3e-9701-4f5a-b3ed-82a0b504b366
+        UUID: a9c6246c-0807-4a43-a64c-442a170c2088
+        customizationUUID: 5a8ef05b-451f-40f4-9531-3ee00bd3c5c4
+        version: '0.1'
+        name: service_admin
+        description: service_admin
+        type: VF
+        category: Allotted Resource
+        subcategory: Service admin
+  substitution_mappings:
+    node_type: org.openecomp.service.SdWan
+    capabilities:
+      Sec_service_admin.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      Sec_IP_Mux_Demux.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      Pri_service_admin.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      Pri_IP_Mux_Demux.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      Pri_Tunnel_XConn.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      Sec_Tunnel_XConn.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Pri_service_admin.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Sec_Tunnel_XConn.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+      Sec_service_admin.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+      Pri_IP_Mux_Demux.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+      Pri_Tunnel_XConn.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+      Sec_service_admin.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Pri_service_admin.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+      Sec_IP_Mux_Demux.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+      Sec_IP_Mux_Demux.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Pri_Tunnel_XConn.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Sec_Tunnel_XConn.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Pri_IP_Mux_Demux.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/config/Artifact-Generator.properties b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/config/Artifact-Generator.properties
new file mode 100644
index 0000000..1d7e5fa
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/config/Artifact-Generator.properties
@@ -0,0 +1,264 @@
+#action widget details
+AAI.model-version-id.action=fd7fb09e-d930-41b9-b83f-cfde9df48640
+AAI.model-invariant-id.action=af593b4b-490e-4665-ad74-2f6351c0a7ce
+#action-data widget details
+AAI.model-invariant-id.action-data=9551346c-7d8b-4daf-9926-b93e96e2344a
+AAI.model-version-id.action-data=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd
+#allotted-resource widget details
+AAI.model-invariant-id.allotted-resource=f6d6a23d-a1a9-48ff-8419-b6530da2d381
+AAI.model-version-id.allotted-resource=7ad0915f-25c0-4a70-b9bc-185a75f87564
+#availability-zone widget details
+AAI.model-version-id.availability-zone=6c092fb1-21b2-456b-9e01-67fb4de1896e
+AAI.model-invariant-id.availability-zone=61b88c01-d819-41c0-8e21-7fd7ba47148e
+#az-and-dvs-switches widget details
+AAI.model-version-id.az-and-dvs-switches=b2dea88d-78a0-49bf-95c9-5819df08e966
+AAI.model-invariant-id.az-and-dvs-switches=53dc00d4-e6d9-48ec-b6cc-3d3797e9b896
+#class-of-service widget details
+AAI.model-version-id.class-of-service=d2fb27cc-15eb-4c4e-828e-71d41aaecc5b
+AAI.model-invariant-id.class-of-service=18094b19-d16d-4822-8acf-e92c6aefa178
+#cloud-region widget details
+AAI.model-version-id.cloud-region=2a160989-b202-47dd-874b-4a0f275998f7
+AAI.model-invariant-id.cloud-region=425b2158-e51d-4509-9945-dad4556474a3
+#complex widget details
+AAI.model-invariant-id.complex=af91c2f7-35fc-43cf-a13d-443f385b2353
+AAI.model-version-id.complex=3a8ab1ee-9220-4fe8-b89c-9251d160ddc2
+#connector widget details
+AAI.model-version-id.connector=22104c9f-29fd-462f-be07-96cd6b46dd33
+AAI.model-invariant-id.connector=4c01c948-7607-4d66-8a6c-99c2c2717936
+#constrained-element-set widget details
+AAI.model-invariant-id.constrained-element-set=c0292b4f-ee97-40cc-8c2e-f967c48f5701
+AAI.model-version-id.constrained-element-set=01102126-9c04-4a89-945b-b131e61e95d7
+#ctag-assignment widget details
+AAI.model-version-id.ctag-assignment=44e5cb1f-0938-41aa-b766-d4595109fe89
+AAI.model-invariant-id.ctag-assignment=fcb8d46b-b656-4ad6-8fa4-22cef74b443f
+#ctag-pool widget details
+AAI.model-invariant-id.ctag-pool=46c51d4e-d67e-4a9c-b1f5-49b1e9c6fcaa
+AAI.model-version-id.ctag-pool=2056c41f-23b9-4de7-9f50-819adad37d76
+#customer widget details
+AAI.model-invariant-id.customer=c1d4305f-cdbd-4bbe-9069-a2f4978fd89e
+AAI.model-version-id.customer=d4df5c27-98a1-4812-a8aa-c17f055b7a3f
+#cvlan-tag-entry widget details
+AAI.model-version-id.cvlan-tag-entry=c3878ffb-8d85-4114-bee6-e4074a9db10b
+AAI.model-invariant-id.cvlan-tag-entry=245cf4b0-7cc5-4eea-bbd9-753e939adcab
+#dvs-switch widget details
+AAI.model-invariant-id.dvs-switch=98fbb471-1f86-428e-bd8a-c8a25de6fa23
+AAI.model-version-id.dvs-switch=4cb44ae8-e3ab-452a-9f95-bcc8a44c55ea
+#edge-prop-names widget details
+AAI.model-invariant-id.edge-prop-names=7a08cad4-8759-46a5-8245-095d1ba57ac6
+AAI.model-version-id.edge-prop-names=f0442326-8201-4d0e-857c-74b4ddcbfc9f
+#element-choice-set widget details
+AAI.model-invariant-id.element-choice-set=9a011958-7165-47a3-b872-00951d1f09ae
+AAI.model-version-id.element-choice-set=af27fbfd-598d-44da-aeae-0f9d3a5fcd6a
+#entitlement widget details
+AAI.model-version-id.entitlement=7e27ba2e-b7db-4e13-9fae-d142152ef98a
+AAI.model-invariant-id.entitlement=ae75b5a0-d5e1-4f3a-b8fb-37626a753da3
+#flavor widget details
+AAI.model-invariant-id.flavor=bace8d1c-a261-4041-9e37-823117415d0f
+AAI.model-version-id.flavor=36200fb5-f251-4f5d-a520-7c5ad5c2cd4b
+#generic-vnf widget details
+AAI.model-version-id.generic-vnf=93a6166f-b3d5-4f06-b4ba-aed48d009ad9
+AAI.model-invariant-id.generic-vnf=acc6edd8-a8d4-4b93-afaa-0994068be14c
+#group-assignment widget details
+AAI.model-invariant-id.group-assignment=7cc05f25-7ba2-42b7-a237-c5662a1689e1
+AAI.model-version-id.group-assignment=fe578080-ce19-4604-8760-fc264fbb2565
+#image widget details
+AAI.model-version-id.image=f6a038c2-820c-42ba-8c2b-375e24e8f932
+AAI.model-invariant-id.image=3f4c7204-739b-4bbb-87a7-8a6856439c90
+#include-node-filter widget details
+AAI.model-invariant-id.include-node-filter=2a2d8ad2-af0a-4e1f-9982-0c899e7dc827
+AAI.model-version-id.include-node-filter=f05f804d-7057-4ffe-bdc5-39f2f0c9c9fd
+#instance-group widget details
+AAI.model-version-id.instance-group=8e6ee9dc-9017-444a-83b3-219edb018128
+AAI.model-invariant-id.instance-group=3bf1e610-45f7-4ad6-b833-ca4c5ee6a3fd
+#inventory-item widget details
+AAI.model-invariant-id.inventory-item=cd57d844-9017-4078-aa19-926935a3d77c
+AAI.model-version-id.inventory-item=69957f4a-2155-4b95-8d72-d6dd9b88b27b
+#inventory-item-data widget details
+AAI.model-version-id.inventory-item-data=0e54bb87-bd6e-4a2b-ad1c-6d935b87ae51
+AAI.model-invariant-id.inventory-item-data=87a383ae-cf03-432e-a9de-04e6a622d0fd
+#ipsec-configuration widget details
+AAI.model-invariant-id.ipsec-configuration=aca4c310-cb45-42bd-9f88-73e40ba7b962
+AAI.model-version-id.ipsec-configuration=d949fd10-36bf-408a-ac7a-cad5004d2e0d
+#key-data widget details
+AAI.model-version-id.key-data=c23ea04d-1a3b-453d-bc49-a6c783a5e92b
+AAI.model-invariant-id.key-data=f5faa464-c2f2-4cc3-89d2-a90452dc3a07
+#l3-interface-ipv4-address-list widget details
+AAI.model-version-id.l3-interface-ipv4-address-list=41e76b6f-1e06-4fd4-82cd-81c50fc4574b
+AAI.model-invariant-id.l3-interface-ipv4-address-list=aad85df2-09be-40fa-b867-16415e4e10e2
+#l3-interface-ipv6-address-list widget details
+AAI.model-invariant-id.l3-interface-ipv6-address-list=82966045-43ee-4982-8307-7e9610866140
+AAI.model-version-id.l3-interface-ipv6-address-list=d040621d-541a-477b-bb1b-a2b61b14e295
+#l3-network widget details
+AAI.model-version-id.l3-network=9111f20f-e680-4001-b83f-19a2fc23bfc1
+AAI.model-invariant-id.l3-network=3d560d81-57d0-438b-a2a1-5334dba0651a
+#lag-interface widget details
+AAI.model-version-id.lag-interface=ce95f7c3-b61b-4758-ae9e-7e943b1c103d
+AAI.model-invariant-id.lag-interface=e0ee9bde-c1fc-4651-a95d-8e0597bf7d70
+#lag-link widget details
+AAI.model-version-id.lag-link=d29a087a-af59-4053-a3f8-0f95a92faa75
+AAI.model-invariant-id.lag-link=86ffe6e5-4d0e-4cec-80b5-5c38aa3eff98
+#license widget details
+AAI.model-invariant-id.license=b9a9b337-1f86-42d3-b9f9-f987a089507c
+AAI.model-version-id.license=6889274b-a1dc-40ab-9090-93677e13e2e6
+#license-key-resource widget details
+AAI.model-invariant-id.license-key-resource=9022ebfe-b54f-4911-a6b2-8c3f5ec189b7
+AAI.model-version-id.license-key-resource=24b25f8c-b8bd-4c62-9421-87c12667aac9
+#l-interface widget details
+AAI.model-version-id.l-interface=a32613fd-18b9-459e-aab8-fffb3912966a
+AAI.model-invariant-id.l-interface=cea0a982-8d55-4093-921e-418fbccf7060
+#logical-link widget details
+AAI.model-version-id.logical-link=a1481a38-f8ba-4ae4-bdf1-06c2c6af4c54
+AAI.model-invariant-id.logical-link=fe012535-2c31-4a39-a739-612374c638a0
+#metadatum widget details
+AAI.model-invariant-id.metadatum=86dbb63a-265e-4614-993f-6771c30b56a5
+AAI.model-version-id.metadatum=6bae950e-8939-41d3-a6a7-251b03e4c1fc
+#model widget details
+AAI.model-invariant-id.model=06d1418a-5faa-452d-a94b-a2829df5f67b
+AAI.model-version-id.model=1f51c05c-b164-4c27-9c03-5cbb239fd6be
+#model-constraint widget details
+AAI.model-invariant-id.model-constraint=c28966f3-e758-4483-b37b-a90b05d3dd33
+AAI.model-version-id.model-constraint=ad70dd19-f156-4fb5-a865-97b5563b0d37
+#model-element widget details
+AAI.model-invariant-id.model-element=2076e726-3577-477a-a300-7fa65cd4df11
+AAI.model-version-id.model-element=753e813a-ba9e-4a1d-ab34-b2f6dc6eec0c
+#multicast-configuration widget details
+AAI.model-invariant-id.multicast-configuration=ea78c9e3-514d-4a0a-9162-13837fa54c35
+AAI.model-version-id.multicast-configuration=666a06ee-4b57-46df-bacf-908da8f10c3f
+#named-query widget details
+AAI.model-version-id.named-query=5c3b7c33-afa3-4be5-8da7-1a5ac6f99896
+AAI.model-invariant-id.named-query=80b712fd-0ad3-4180-a99c-8c995cf1cc32
+#named-query-element widget details
+AAI.model-version-id.named-query-element=204c641a-3494-48c8-979a-86856f5fd32a
+AAI.model-invariant-id.named-query-element=3c504d40-b847-424c-9d25-4fb7e0a3e994
+#network-policy widget details
+AAI.model-invariant-id.network-policy=6aa05779-94d7-4d8b-9bee-59ef2ab0c246
+AAI.model-version-id.network-policy=a0ccd9dc-7062-4940-9bcc-e91dd28af510
+#network-profile widget details
+AAI.model-version-id.network-profile=01f45471-4240-498c-a9e1-235dc0b8b4a6
+AAI.model-invariant-id.network-profile=2734b44a-b8a2-40f6-957d-6256589e5d00
+#newvce widget details
+AAI.model-version-id.newvce=7c79e11f-a408-4593-aa86-ba948a1236af
+AAI.model-invariant-id.newvce=4b05ec9c-c55d-4987-83ff-e08d6ddb694f
+#oam-network widget details
+AAI.model-invariant-id.oam-network=2851cf01-9c40-4064-87d4-6184a6fcff35
+AAI.model-version-id.oam-network=f4fb34f3-fd6e-4a8f-a3fb-4ab61a343b79
+#physical-link widget details
+AAI.model-invariant-id.physical-link=c822d81f-822f-4304-9623-1025b53da568
+AAI.model-version-id.physical-link=9c523936-95b4-4d7f-9f53-6bdfe0cf2c05
+#p-interface widget details
+AAI.model-invariant-id.p-interface=94043c37-4e73-439c-a790-0fdd697924cd
+AAI.model-version-id.p-interface=d2cdb2d0-fc1f-4a57-a89e-591b1c4e3754
+#pnf widget details
+AAI.model-version-id.pnf=e9f1fa7d-c839-418a-9601-03dc0d2ad687
+AAI.model-invariant-id.pnf=862b25a1-262a-4961-bdaa-cdc55d69785a
+#port-group widget details
+AAI.model-version-id.port-group=03e8bb6b-b48a-46ae-b5d4-e5af577e6844
+AAI.model-invariant-id.port-group=8ce940fb-55d7-4230-9e7f-a56cc2741f77
+#property-constraint widget details
+AAI.model-version-id.property-constraint=81706bbd-981e-4362-ae20-995cbcb2d995
+AAI.model-invariant-id.property-constraint=f4a863c3-6886-470a-a6ae-05723837ea45
+#pserver widget details
+AAI.model-invariant-id.pserver=6d932c8f-463b-4e76-83fb-87acfbaa2e2d
+AAI.model-version-id.pserver=72f0d495-bc27-4653-9e1a-eef76bd34bc9
+#related-lookup widget details
+AAI.model-invariant-id.related-lookup=468f6f5b-2996-41bb-b2a3-7cf9613ebb9b
+AAI.model-version-id.related-lookup=0988bab5-bf4f-4938-a419-ab249867d12a
+#reserved-prop-names widget details
+AAI.model-invariant-id.reserved-prop-names=0c3e0ba3-618c-498d-9127-c8d42b00170f
+AAI.model-version-id.reserved-prop-names=ac49d26d-9163-430e-934a-13b738a04f5c
+#result-data widget details
+AAI.model-version-id.result-data=4e9b50aa-5227-4f6f-b489-62e6bbc03c79
+AAI.model-invariant-id.result-data=ff656f23-6185-406f-9006-4b26834f3e1c
+#route-table-reference widget details
+AAI.model-version-id.route-table-reference=fed7e326-03a7-45ff-a3f2-471470d268c4
+AAI.model-invariant-id.route-table-reference=a8614b63-2636-4c4f-98df-fd448c4241db
+#routing-instance widget details
+AAI.model-invariant-id.routing-instance=1c2ded4f-8b01-4193-829c-966847dfec3e
+AAI.model-version-id.routing-instance=3ccbcbc7-d19e-44d5-a52f-7e18aa8d69fa
+#secondary-filter widget details
+AAI.model-version-id.secondary-filter=1380619d-dd1a-4cec-b755-c6407833e065
+AAI.model-invariant-id.secondary-filter=738ff299-6290-4c00-8998-bd0e96a07b93
+#segmentation-assignment widget details
+AAI.model-invariant-id.segmentation-assignment=6e814aee-46e1-4583-a9d4-0049bfd2b59b
+AAI.model-version-id.segmentation-assignment=c5171ae0-44fb-4c04-b482-d56702241a44
+#service widget details
+AAI.model-version-id.service=ecce2c42-3957-4ae0-9442-54bc6afe27b6
+AAI.model-invariant-id.service=07a3a60b-1b6c-4367-8173-8014386f89e3
+#service-capability widget details
+AAI.model-invariant-id.service-capability=b1a7cc05-d19d-443b-a5d1-733e325c4232
+AAI.model-version-id.service-capability=f9cfec1b-18da-4bba-bd83-4b26cca115cd
+#service-instance widget details
+AAI.model-invariant-id.service-instance=82194af1-3c2c-485a-8f44-420e22a9eaa4
+AAI.model-version-id.service-instance=46b92144-923a-4d20-b85a-3cbd847668a9
+#service-subscription widget details
+AAI.model-invariant-id.service-subscription=2e1a602a-acd8-4f78-94ff-618b802a303b
+AAI.model-version-id.service-subscription=5e68299a-79f2-4bfb-8fbc-2bae877a2459
+#site-pair widget details
+AAI.model-version-id.site-pair=7106bc02-6552-4fc3-8a56-4f3df9034531
+AAI.model-invariant-id.site-pair=db63f3e6-f8d1-484e-8d5e-191600b7914b
+#site-pair-set widget details
+AAI.model-invariant-id.site-pair-set=5d4dae3e-b402-4bfd-909e-ece12ff75d26
+AAI.model-version-id.site-pair-set=a5c6c1bc-dc38-468e-9459-bb08f87247df
+#snapshot widget details
+AAI.model-version-id.snapshot=962a7c8b-687f-4d32-a775-fe098e214bcd
+AAI.model-invariant-id.snapshot=24de00ef-aead-4b52-995b-0adf8d4bd90d
+#sriov-vf widget details
+AAI.model-version-id.sriov-vf=1e8b331f-3d4a-4160-b7aa-f4d5a8916625
+AAI.model-invariant-id.sriov-vf=04b2935f-33c4-40a9-8af0-8b52690042dc
+#start-node-filter widget details
+AAI.model-version-id.start-node-filter=aad96fd3-e75f-42fc-9777-3450c36f1168
+AAI.model-invariant-id.start-node-filter=083093a3-e407-447a-ba5d-7583e4d23e1d
+#subnet widget details
+AAI.model-version-id.subnet=f902a6bc-6be4-4fe5-8458-a6ec0056b374
+AAI.model-invariant-id.subnet=1b2c9ba7-e449-4831-ba15-3073672f5ef2
+#tagged-inventory-item-list widget details
+AAI.model-invariant-id.tagged-inventory-item-list=e78a7eaa-f65d-4919-9c2b-5b258c8c4d7e
+AAI.model-version-id.tagged-inventory-item-list=c246f6e2-e3a1-4697-94c0-5672a7fbbf04
+#tenant widget details
+AAI.model-invariant-id.tenant=97c26c99-6870-44c1-8a07-1d900d3f4ce6
+AAI.model-version-id.tenant=abcc54bc-bb74-49dc-9043-7f7171707545
+#tunnel-xconnect widget details
+AAI.model-invariant-id.tunnel-xconnect=50b9e2fa-005c-4bbe-b651-3251dece4cd8
+AAI.model-version-id.tunnel-xconnect=e7cb4ca8-e1a5-4487-a716-4ae0bcd8aef5
+#update-node-key widget details
+AAI.model-version-id.update-node-key=6004cfa6-eb6d-4062-971f-b1fde6b74aa0
+AAI.model-invariant-id.update-node-key=fe81c801-f65d-408a-b2b7-a729a18f8154
+#vce widget details
+AAI.model-version-id.vce=b6cf54b5-ec45-43e1-be64-97b4e1513333
+AAI.model-invariant-id.vce=bab6dceb-e7e6-4301-a5e0-a7399b48d792
+#vf-module widget details
+AAI.model-invariant-id.vf-module=ef86f9c5-2165-44f3-8fc3-96018b609ea5
+AAI.model-version-id.vf-module=c00563ae-812b-4e62-8330-7c4d0f47088a
+#vig-server widget details
+AAI.model-version-id.vig-server=8e8c22f1-fbdf-48ea-844c-8bdeb44e7b16
+AAI.model-invariant-id.vig-server=bed7c3b7-35d0-4cd9-abde-41b20e68b28e
+#virtual-data-center widget details
+AAI.model-invariant-id.virtual-data-center=5150abcf-0c5f-4593-9afe-a19c48fc4824
+AAI.model-version-id.virtual-data-center=6dd43ced-d789-47af-a759-d3abc14e3ac1
+#vlan widget details
+AAI.model-version-id.vlan=257d88a5-a269-4c35-944f-aca04fbdb791
+AAI.model-invariant-id.vlan=d2b1eaf1-ae59-4116-9ee4-aa0179faa4f8
+#vnfc widget details
+AAI.model-invariant-id.vnfc=96129eb9-f0de-4e05-8af2-73146473f766
+AAI.model-version-id.vnfc=5761e0a7-c6df-4d8a-9ebd-b8f445054dec
+#vnf-image widget details
+AAI.model-invariant-id.vnf-image=f9a628ff-7aa0-40e2-a93d-02d91c950982
+AAI.model-version-id.vnf-image=c4d3e747-ba4a-4b17-9896-94c6f18c19d3
+#volume widget details
+AAI.model-version-id.volume=0fbe2e8f-4d91-4415-a772-88387049b38d
+AAI.model-invariant-id.volume=ddd739b4-2b25-46c4-affc-41a32af5cc42
+#volume-group widget details
+AAI.model-invariant-id.volume-group=fcec1b02-b2d0-4834-aef8-d71be04717dd
+AAI.model-version-id.volume-group=99d44c90-1f61-4418-b9a6-56586bf38c79
+#vpe widget details
+AAI.model-invariant-id.vpe=053ec3a7-5b72-492d-b54d-123805a9b967
+AAI.model-version-id.vpe=203817d3-829c-42d4-942d-2a935478e993
+#vpls-pe widget details
+AAI.model-version-id.vpls-pe=b1566228-6785-4ce1-aea2-053736f80341
+AAI.model-invariant-id.vpls-pe=457ba89b-334c-4fbd-acc4-160ac0e0cdc0
+#vpn-binding widget details
+AAI.model-invariant-id.vpn-binding=9e23b675-db2b-488b-b459-57aa9857baa0
+AAI.model-version-id.vpn-binding=21a146e5-9901-448c-9197-723076770119
+#vserver widget details
+AAI.model-invariant-id.vserver=ff69d4e0-a8e8-4108-bdb0-dd63217e63c7
+AAI.model-version-id.vserver=8ecb2c5d-7176-4317-a255-26274edfdd53
\ No newline at end of file
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/logback.xml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/logback.xml
new file mode 100644
index 0000000..6843896
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/logback.xml
@@ -0,0 +1,51 @@
+<configuration scan="true" scanPeriod="3 seconds">
+
+    <property name="logDir" value="logs"/>
+    <property name="componentName" value="COMMON"/>
+    <property name="OPENECOMP-subcomponent-name" value="ARTIFACT_GENERATOR"/>
+
+    <property name="defaultPattern"
+              value="%msg%n"/>
+
+    <!--<property name="MetricsLogPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{ServerName}|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%X{CategoryLogLevel}|%X{Severity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{ClientIP}|%logger%n" />
+    <property name="AuditLogPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{ServerName}|%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%X{CategoryLogLevel}|%X{Severity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{ClientIP}%n" />
+    <property name="ErrorLogPattern" value="%d{yyyy-MM-dd'T'HH:mm:ss.SSS, GMT}|%X{RequestId}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{ErrorCategory}|%X{ErrorCode}|%X{ErrorDescription}|%msg%n"/>
+    <property name="DebugLogPattern" value="%d{yyyy-MM-dd'T'HH:mm:ss.SSS, GMT}|%X{RequestId}||%logger|%msg%n"/>-->
+
+    <!-- new pattern -->
+    <property name="default-log-pattern"
+              value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{BeginTimestamp}|%X{EndTimestamp}|%X{uuid}|%X{serviceInstanceID}|%thread|%X{ServerName}|%X{ServiceName}|${OPENECOMP-subcomponent-name}|%X{userId}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%X{ErrorCategory}|%X{ErrorCode}|%X{ErrorDescription}|%X{level}|%X{alarmSeverity}|%X{localAddr}|%X{ElapsedTime}|%X{beFqdn}|%X{remoteAddr}|%logger{35}|%X{timer}|ActivityType=&lt;%M&gt;, Desc=&lt;%msg&gt;%n"/>
+
+    <property name="logDirectory" value="${logDir}/${componentName}"/>
+
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder>
+            <pattern>${defaultPattern}</pattern>
+        </encoder>
+    </appender>
+
+    <appender name="DISPATCHER" class="ch.qos.logback.classic.sift.SiftingAppender">
+        <discriminator class="org.openecomp.core.logging.logback.EventTypeDiscriminator"/>
+        <sift>
+            <appender name="${eventType}" class="ch.qos.logback.core.rolling.RollingFileAppender">
+                <file>${logDirectory}/${eventType}.log</file>
+                <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+                    <fileNamePattern>${logDirectory}/${eventType}.%i.log.zip</fileNamePattern>
+                    <minIndex>1</minIndex>
+                    <maxIndex>9</maxIndex>
+                </rollingPolicy>
+                <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+                    <maxFileSize>5MB</maxFileSize>
+                </triggeringPolicy>
+                <encoder>
+                    <pattern>${default-log-pattern}</pattern>
+                </encoder>
+            </appender>
+        </sift>
+    </appender>
+
+    <root level="DEBUG">
+        <appender-ref ref="DISPATCHER"/>
+    </root>
+
+</configuration>
\ No newline at end of file
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/missingResourceTosca/service_vmme_template_1.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/missingResourceTosca/service_vmme_template_1.yml
new file mode 100644
index 0000000..822484e
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/missingResourceTosca/service_vmme_template_1.yml
@@ -0,0 +1,99 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  type: Service
+  name: vMME_Service
+  description: vMME_Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+    
+topology_template:
+
+  inputs:    
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity 
+      
+  node_templates:
+
+    mme: # vMME VNF
+      type: org.openecomp.resource.vf.vmme
+
+      metadata:
+          invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version: 1.0
+          name: vMME_VF
+          description: vMME_VF
+          type: VF
+          category: Application L4+
+          subcategory: Firewall
+          resourceVendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+      
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/missingVLTosca/resource-AllottedResource-template.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/missingVLTosca/resource-AllottedResource-template.yml
new file mode 100644
index 0000000..8c85966
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/missingVLTosca/resource-AllottedResource-template.yml
@@ -0,0 +1,60 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+  UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+  name: Allotted Resource
+  description: This is a VF - Allotted resource
+  type: VF
+  category: Allotted Resource
+  subcategory: Allotted Resource
+  resourceVendor: '1'
+  resourceVendorRelease: '1'
+imports:
+- Alloted resource:
+    file: resource-AllotedResource-template.yml
+topology_template:
+  node_templates:
+    Alloted resource 1:
+      type: org.openecomp.resource.vfc.AllottedResource1
+      metadata:
+        invariantUUID: 666b409b-5614-41a8-945e-a53d68f5d439
+        UUID: df0c1c4d-1756-4b2a-998e-73f9f4d77afa
+        version: '1.0'
+        name: Alloted resource
+        description: This is a VFC- Allotted resource
+        type: VFC
+        category: Allotted Resource
+        subcategory: Allotted Resource
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.AllottedResource
+    capabilities:
+      Alloted resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Alloted resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Alloted resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/missingVLTosca/service-ServiceWithAllotedVfAndExvl-template.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/missingVLTosca/service-ServiceWithAllotedVfAndExvl-template.yml
new file mode 100644
index 0000000..dbd0396
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/missingVLTosca/service-ServiceWithAllotedVfAndExvl-template.yml
@@ -0,0 +1,90 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: e8a6c85c-429f-47cd-b594-376a0ffccd29
+  UUID: 14fd2446-691a-4d7d-8ef4-ece19c3176f5
+  name: Service with alloted VF and  exVL
+  description: 'This service contains two instances : 1. Allotted resource VF 2. ExVL
+    - Network'
+  type: Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+imports:
+- ExtVL:
+    file: resource-Extvl-template.yml
+- Allotted Resource:
+    file: resource-AllottedResource-template.yml
+topology_template:
+  node_templates:
+    ExtVL 1:
+      type: org.openecomp.resource.vl.extVL
+      metadata:
+        invariantUUID: f148dbb0-8c53-466d-9687-791c0e9d40cf
+        UUID: 3f8fa4d2-2b86-4b36-bbc8-ffb8f9f57468
+        version: '2.0'
+        name: ExtVL
+        description: OPENECOMP generic virtual link (network) base type for all other service-level and global networks
+        type: VL
+        category: Generic
+        subcategory: Network Elements
+    Allotted Resource 2:
+      type: org.openecomp.resource.vf.AllottedResource
+      metadata:
+        invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+        UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+        version: '0.1'
+        name: Allotted Resource
+        description: This is a VF - Allotted resource
+        type: VF
+        category: Allotted Resource
+        subcategory: Allotted Resource
+  substitution_mappings:
+    node_type: org.openecomp.service.ServiceWithAllotedVfAndExvl
+    capabilities:
+      ExtVL 1.virtual_linkable:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      Allotted Resource 2.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      ExtVL 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      ExtVL 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Allotted Resource 2.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Allotted Resource 2.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/service_vmme_template_InvalidVfModInvUuIdAttr.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/service_vmme_template_InvalidVfModInvUuIdAttr.yml
new file mode 100644
index 0000000..f57a7d2
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/service_vmme_template_InvalidVfModInvUuIdAttr.yml
@@ -0,0 +1,194 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  type: Service
+  name: vMME_Service
+  description: vMME_Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+    
+topology_template:
+
+  inputs:    
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity 
+      
+  node_templates:
+
+    mme: # vMME VNF
+      type: org.openecomp.resource.vf.vmme
+
+      metadata:
+          invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version: 1.0
+          name: vMME_VF
+          description: vMME_VF
+          type: VF
+          category: Application L4+
+          subcategory: Firewall
+          resourceVendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+ 
+     
+  # Virtual Links (Networks)
+  
+    gtp_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+        UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+        version: 1.0
+        name: GTPNet
+        description: GTP External Network
+        type: VL
+        category: VL
+        resourceVendor: AT&T      
+      properties:
+        network_type: Tenant_Layer_3 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: {get_input: gtp_net_network_name}
+          route_targets: {get_input: gtp_net_route_targets}
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN 
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: {get_input: gtp_net_cidr}
+          gateway_ip: {get_input: gtp_net_gateway_ip}
+          start_ip: {get_input: gtp_net_start_ip}
+          end_ip: {get_input: gtp_net_end_ip}
+    
+    sctp_a_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+        UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+        version: 1.0
+        name: SCTPANet
+        description: SCTP A External Network
+        type: VL
+        category: VL
+        resourceVendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+          route_targets: 13979:105717
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.0/27 # HEAT ENV
+          gateway_ip: 107.243.37.1 # HEAT ENV
+          start_ip: 107.243.37.3 # HEAT ENV
+          end_ip: 107.243.37.30 # HEAT ENV
+      
+    sctp_b_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+        UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+        version: 1.0
+        name: SCTPBNet
+        description: SCTP B External Network
+        type: VL
+        category: VL
+        resourceVendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+          route_targets: 13979:105719
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.32/24 # HEAT ENV
+          gateway_ip: 107.243.37.33 # HEAT ENV
+          start_ip: 107.243.37.35 # HEAT ENV
+          end_ip: 107.243.37.62 # HEAT ENV
+      
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/service_vmme_template_InvalidVfModUuIdAttr.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/service_vmme_template_InvalidVfModUuIdAttr.yml
new file mode 100644
index 0000000..f57a7d2
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/service_vmme_template_InvalidVfModUuIdAttr.yml
@@ -0,0 +1,194 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  type: Service
+  name: vMME_Service
+  description: vMME_Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+    
+topology_template:
+
+  inputs:    
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity 
+      
+  node_templates:
+
+    mme: # vMME VNF
+      type: org.openecomp.resource.vf.vmme
+
+      metadata:
+          invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version: 1.0
+          name: vMME_VF
+          description: vMME_VF
+          type: VF
+          category: Application L4+
+          subcategory: Firewall
+          resourceVendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+ 
+     
+  # Virtual Links (Networks)
+  
+    gtp_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+        UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+        version: 1.0
+        name: GTPNet
+        description: GTP External Network
+        type: VL
+        category: VL
+        resourceVendor: AT&T      
+      properties:
+        network_type: Tenant_Layer_3 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: {get_input: gtp_net_network_name}
+          route_targets: {get_input: gtp_net_route_targets}
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN 
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: {get_input: gtp_net_cidr}
+          gateway_ip: {get_input: gtp_net_gateway_ip}
+          start_ip: {get_input: gtp_net_start_ip}
+          end_ip: {get_input: gtp_net_end_ip}
+    
+    sctp_a_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+        UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+        version: 1.0
+        name: SCTPANet
+        description: SCTP A External Network
+        type: VL
+        category: VL
+        resourceVendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+          route_targets: 13979:105717
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.0/27 # HEAT ENV
+          gateway_ip: 107.243.37.1 # HEAT ENV
+          start_ip: 107.243.37.3 # HEAT ENV
+          end_ip: 107.243.37.30 # HEAT ENV
+      
+    sctp_b_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+        UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+        version: 1.0
+        name: SCTPBNet
+        description: SCTP B External Network
+        type: VL
+        category: VL
+        resourceVendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+          route_targets: 13979:105719
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.32/24 # HEAT ENV
+          gateway_ip: 107.243.37.33 # HEAT ENV
+          start_ip: 107.243.37.35 # HEAT ENV
+          end_ip: 107.243.37.62 # HEAT ENV
+      
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/service_vmme_template_ModInvUUID.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/service_vmme_template_ModInvUUID.yml
new file mode 100644
index 0000000..4d50982
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/service_vmme_template_ModInvUUID.yml
@@ -0,0 +1,194 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  type: Service
+  name: vMME_Service
+  description: vMME_Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+    
+topology_template:
+
+  inputs:    
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity 
+      
+  node_templates:
+
+    mme: # vMME VNF
+      type: org.openecomp.resource.vf.vmme
+
+      metadata:
+          invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version: 1.0
+          name: vMME_VF
+          description: vMME_VF
+          type: VF
+          category: Application L4+
+          subcategory: Firewall
+          resourceVendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+
+
+  # Virtual Links (Networks)
+
+    gtp_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+        UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+        version: 1.0
+        name: GTPNet
+        description: GTP External Network
+        type: VL
+        category: VL
+        resourceVendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: {get_input: gtp_net_network_name}
+          route_targets: {get_input: gtp_net_route_targets}
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: {get_input: gtp_net_cidr}
+          gateway_ip: {get_input: gtp_net_gateway_ip}
+          start_ip: {get_input: gtp_net_start_ip}
+          end_ip: {get_input: gtp_net_end_ip}
+
+    sctp_a_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+        UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+        version: 1.0
+        name: SCTPANet
+        description: SCTP A External Network
+        type: VL
+        category: VL
+        resourceVendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+          route_targets: 13979:105717
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.0/27 # HEAT ENV
+          gateway_ip: 107.243.37.1 # HEAT ENV
+          start_ip: 107.243.37.3 # HEAT ENV
+          end_ip: 107.243.37.30 # HEAT ENV
+
+    sctp_b_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+        UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+        version: 1.0
+        name: SCTPBNet
+        description: SCTP B External Network
+        type: VL
+        category: VL
+        resourceVendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+          route_targets: 13979:105719
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.32/24 # HEAT ENV
+          gateway_ip: 107.243.37.33 # HEAT ENV
+          start_ip: 107.243.37.35 # HEAT ENV
+          end_ip: 107.243.37.62 # HEAT ENV
+
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/service_vmme_template_ModelName.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/service_vmme_template_ModelName.yml
new file mode 100644
index 0000000..4d50982
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/service_vmme_template_ModelName.yml
@@ -0,0 +1,194 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  type: Service
+  name: vMME_Service
+  description: vMME_Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+    
+topology_template:
+
+  inputs:    
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity 
+      
+  node_templates:
+
+    mme: # vMME VNF
+      type: org.openecomp.resource.vf.vmme
+
+      metadata:
+          invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version: 1.0
+          name: vMME_VF
+          description: vMME_VF
+          type: VF
+          category: Application L4+
+          subcategory: Firewall
+          resourceVendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+
+
+  # Virtual Links (Networks)
+
+    gtp_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+        UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+        version: 1.0
+        name: GTPNet
+        description: GTP External Network
+        type: VL
+        category: VL
+        resourceVendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: {get_input: gtp_net_network_name}
+          route_targets: {get_input: gtp_net_route_targets}
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: {get_input: gtp_net_cidr}
+          gateway_ip: {get_input: gtp_net_gateway_ip}
+          start_ip: {get_input: gtp_net_start_ip}
+          end_ip: {get_input: gtp_net_end_ip}
+
+    sctp_a_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+        UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+        version: 1.0
+        name: SCTPANet
+        description: SCTP A External Network
+        type: VL
+        category: VL
+        resourceVendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+          route_targets: 13979:105717
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.0/27 # HEAT ENV
+          gateway_ip: 107.243.37.1 # HEAT ENV
+          start_ip: 107.243.37.3 # HEAT ENV
+          end_ip: 107.243.37.30 # HEAT ENV
+
+    sctp_b_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+        UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+        version: 1.0
+        name: SCTPBNet
+        description: SCTP B External Network
+        type: VL
+        category: VL
+        resourceVendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+          route_targets: 13979:105719
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.32/24 # HEAT ENV
+          gateway_ip: 107.243.37.33 # HEAT ENV
+          start_ip: 107.243.37.35 # HEAT ENV
+          end_ip: 107.243.37.62 # HEAT ENV
+
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/service_vmme_template_ModelUUID.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/service_vmme_template_ModelUUID.yml
new file mode 100644
index 0000000..4d50982
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/service_vmme_template_ModelUUID.yml
@@ -0,0 +1,194 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  type: Service
+  name: vMME_Service
+  description: vMME_Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+    
+topology_template:
+
+  inputs:    
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity 
+      
+  node_templates:
+
+    mme: # vMME VNF
+      type: org.openecomp.resource.vf.vmme
+
+      metadata:
+          invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version: 1.0
+          name: vMME_VF
+          description: vMME_VF
+          type: VF
+          category: Application L4+
+          subcategory: Firewall
+          resourceVendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+
+
+  # Virtual Links (Networks)
+
+    gtp_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+        UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+        version: 1.0
+        name: GTPNet
+        description: GTP External Network
+        type: VL
+        category: VL
+        resourceVendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: {get_input: gtp_net_network_name}
+          route_targets: {get_input: gtp_net_route_targets}
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: {get_input: gtp_net_cidr}
+          gateway_ip: {get_input: gtp_net_gateway_ip}
+          start_ip: {get_input: gtp_net_start_ip}
+          end_ip: {get_input: gtp_net_end_ip}
+
+    sctp_a_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+        UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+        version: 1.0
+        name: SCTPANet
+        description: SCTP A External Network
+        type: VL
+        category: VL
+        resourceVendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+          route_targets: 13979:105717
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.0/27 # HEAT ENV
+          gateway_ip: 107.243.37.1 # HEAT ENV
+          start_ip: 107.243.37.3 # HEAT ENV
+          end_ip: 107.243.37.30 # HEAT ENV
+
+    sctp_b_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+        UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+        version: 1.0
+        name: SCTPBNet
+        description: SCTP B External Network
+        type: VL
+        category: VL
+        resourceVendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+          route_targets: 13979:105719
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.32/24 # HEAT ENV
+          gateway_ip: 107.243.37.33 # HEAT ENV
+          start_ip: 107.243.37.35 # HEAT ENV
+          end_ip: 107.243.37.62 # HEAT ENV
+
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/service_vmme_template_ModelVersion.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/service_vmme_template_ModelVersion.yml
new file mode 100644
index 0000000..4d50982
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/service_vmme_template_ModelVersion.yml
@@ -0,0 +1,194 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  type: Service
+  name: vMME_Service
+  description: vMME_Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+    
+topology_template:
+
+  inputs:    
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity 
+      
+  node_templates:
+
+    mme: # vMME VNF
+      type: org.openecomp.resource.vf.vmme
+
+      metadata:
+          invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version: 1.0
+          name: vMME_VF
+          description: vMME_VF
+          type: VF
+          category: Application L4+
+          subcategory: Firewall
+          resourceVendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+
+
+  # Virtual Links (Networks)
+
+    gtp_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+        UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+        version: 1.0
+        name: GTPNet
+        description: GTP External Network
+        type: VL
+        category: VL
+        resourceVendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: {get_input: gtp_net_network_name}
+          route_targets: {get_input: gtp_net_route_targets}
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: {get_input: gtp_net_cidr}
+          gateway_ip: {get_input: gtp_net_gateway_ip}
+          start_ip: {get_input: gtp_net_start_ip}
+          end_ip: {get_input: gtp_net_end_ip}
+
+    sctp_a_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+        UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+        version: 1.0
+        name: SCTPANet
+        description: SCTP A External Network
+        type: VL
+        category: VL
+        resourceVendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+          route_targets: 13979:105717
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.0/27 # HEAT ENV
+          gateway_ip: 107.243.37.1 # HEAT ENV
+          start_ip: 107.243.37.3 # HEAT ENV
+          end_ip: 107.243.37.30 # HEAT ENV
+
+    sctp_b_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+        UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+        version: 1.0
+        name: SCTPBNet
+        description: SCTP B External Network
+        type: VL
+        category: VL
+        resourceVendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+          route_targets: 13979:105719
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.32/24 # HEAT ENV
+          gateway_ip: 107.243.37.33 # HEAT ENV
+          start_ip: 107.243.37.35 # HEAT ENV
+          end_ip: 107.243.37.62 # HEAT ENV
+
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testAllotedResourceWithDependingSerWithGroups/resource-AllottedResource-template_IpMux_WithGroups.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testAllotedResourceWithDependingSerWithGroups/resource-AllottedResource-template_IpMux_WithGroups.yml
new file mode 100644
index 0000000..2827503
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testAllotedResourceWithDependingSerWithGroups/resource-AllottedResource-template_IpMux_WithGroups.yml
@@ -0,0 +1,283 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+  UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+  name: Allotted Resource
+  description: This is a VF - Allotted resource
+  type: VF
+  category: Allotted Resource
+  subcategory: IP Mux Demux
+  resourceVendor: '1'
+  resourceVendorRelease: '1'
+imports:
+- Alloted resource:
+    file: resource-AllotedResource-template.yml
+topology_template:
+  groups:
+    vfmoduleVmmeModule-1:
+      members:
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      metadata:
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelName: "vMME::module-1"
+        vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+      properties:
+        artifacts:
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+        availability_zone_count: 2
+        contrail_service_instance: true
+        vf_module_description: "vMME expansion VF Module"
+        vf_module_label: "vMME Expansion VF Module"
+        vf_module_type: Expansion
+        volume_group: false
+      type: org.openecomp.groups.VfModule
+  node_templates:
+    allotedresource1:
+      type: org.openecomp.resource.vfc.AllottedResource
+      metadata:
+        invariantUUID: 666b409b-5614-41a8-945e-a53d68f5d439
+        UUID: df0c1c4d-1756-4b2a-998e-73f9f4d77afa
+        customizationUUID: 1c217567-5093-41f5-86e6-22c97ef24e75
+        version: '1.0'
+        name: Alloted resource
+        description: This is a VFC- Allotted resource
+        type: VFC
+        category: Allotted Resource
+        subcategory: Allotted Resource
+      properties:
+        role: name
+        ecomp_naming:
+          naming_policy: test
+          ecomp_generated_naming: false
+          supplemental_data:
+            Key1: key1
+        providing_service_invariant_uuid: 34a4d119-06bc-4ab4-8c5a-a498d638297c
+        min_instances: 1
+        max_instances: 1
+        providing_service_uuid: e14a509f-b611-4b30-b38c-bc7f11b679aa
+        providing_service_name: vVIGaaS
+        ecomp_homing:
+          instance_node_target: Test
+          homing_policy: Test
+          supplemental_data:
+            Key: key
+          ecomp_selected_instance_node_target: false
+    FSB1:
+      capabilities:
+        monitoring_capabilty:
+          properties:
+            name: high_cpu
+        nfv_compute:
+          properties:
+            vfc_flavor:
+              get_input: fsb1_vfc_flavor
+        scaling_capability:
+          properties:
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata:
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties:
+        vfc_description: FSB1
+        vfc_ecomp_name: false
+        vfc_image_name:
+          get_input: fsb1_vfc_image_name
+        vfc_instance_name:
+          get_input: fsb1_vfc_instance_name
+        vfc_type_tag:
+          get_input: fsb1_vfc_type_tag
+      requirements:
+        -
+          binding:
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        -
+          binding:
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        -
+          binding:
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    FSB2:
+      capabilities:
+        monitoring_capability:
+          properties:
+            name: cpu_load
+        nfv_compute:
+          properties:
+            vfc_flavor:
+              get_input: fsb2_vfc_flavor
+        scaling_capability:
+          properties:
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata:
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties:
+        vfc_description: FSB2
+        vfc_ecomp_name: false
+        vfc_image_name:
+          get_input: fsb2_vfc_image_name
+        vfc_instance_name:
+          get_input: fsb2_vfc_instance_name
+        vfc_type_tag:
+          get_input: fsb2_vfc_type_tag
+      requirements:
+        -
+          binding:
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        -
+          binding:
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        -
+          binding:
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    NCB1:
+      capabilities:
+        monitoring_capability:
+          properties:
+            name: cpu_load
+        nfv_compute:
+          properties:
+            vfc_flavor:
+              get_input: ncb1_vfc_flavor
+        scaling_capability:
+          properties:
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata:
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties:
+        vfc_description: NCB1
+        vfc_ecomp_name: false
+        vfc_image_name:
+          get_input: ncb1_vfc_image_name
+        vfc_instance_name:
+          get_input: ncb1_vfc_instance_name
+        vfc_type_tag:
+          get_input: ncb1_vfc_type_tag
+      requirements:
+        -
+          binding:
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        -
+          binding:
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        -
+          binding:
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.AllottedResource
+    capabilities:
+      Alloted resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Alloted resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Alloted resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testAllotedResourceWithDependingSerWithGroups/service-ServiceWithAllottedResourceIpmux-template_WithGroups.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testAllotedResourceWithDependingSerWithGroups/service-ServiceWithAllottedResourceIpmux-template_WithGroups.yml
new file mode 100644
index 0000000..1fba2e7
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testAllotedResourceWithDependingSerWithGroups/service-ServiceWithAllottedResourceIpmux-template_WithGroups.yml
@@ -0,0 +1,62 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: faa4359b-6ecf-4eeb-9960-6440d4cf1f2f
+  UUID: 614316ee-94ae-41b3-b59a-46e87d3d91a5
+  name: Service with allotted resource IPMUX
+  description: safa
+  type: Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+imports:
+- Allotted Resource:
+    file: resource-AllottedResource-template.yml
+topology_template:
+  node_templates:
+    allottedresource1:
+      type: org.openecomp.resource.vf.AllottedResource
+      metadata:
+        invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+        UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+        customizationUUID: 958fb310-184f-463d-b634-1660a626f320
+        version: '0.2'
+        name: Allotted Resource
+        description: This is a VF - Allotted resource
+        type: VF
+        category: Allotted Resource
+        subcategory: IP Mux Demux
+  groups: {
+    }
+  substitution_mappings:
+    node_type: org.openecomp.service.ServiceWithAllottedResourceIpmux
+    capabilities:
+      Allotted Resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Allotted Resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Allotted Resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration10/service_vmme_template_1.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration10/service_vmme_template_1.yml
new file mode 100644
index 0000000..4a16e55
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration10/service_vmme_template_1.yml
@@ -0,0 +1,194 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  type: Service
+  name:
+  description: vMME_Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+    
+topology_template:
+
+  inputs:    
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity 
+      
+  node_templates:
+
+    mme: # vMME VNF
+      type: org.openecomp.resource.vf.vmme
+
+      metadata:
+          invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version: 1.0
+          name: vMME_VF
+          description: vMME_VF
+          type: VF
+          category: Application L4+
+          subcategory: Firewall
+          resourceVendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+ 
+     
+  # Virtual Links (Networks)
+  
+    gtp_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+        UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+        version: 1.0
+        name: GTPNet
+        description: GTP External Network
+        type: VL
+        category: VL
+        resourceVendor: AT&T      
+      properties:
+        network_type: Tenant_Layer_3 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: {get_input: gtp_net_network_name}
+          route_targets: {get_input: gtp_net_route_targets}
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN 
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: {get_input: gtp_net_cidr}
+          gateway_ip: {get_input: gtp_net_gateway_ip}
+          start_ip: {get_input: gtp_net_start_ip}
+          end_ip: {get_input: gtp_net_end_ip}
+    
+    sctp_a_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+        UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+        version: 1.0
+        name: SCTPANet
+        description: SCTP A External Network
+        type: VL
+        category: VL
+        resourceVendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+          route_targets: 13979:105717
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.0/27 # HEAT ENV
+          gateway_ip: 107.243.37.1 # HEAT ENV
+          start_ip: 107.243.37.3 # HEAT ENV
+          end_ip: 107.243.37.30 # HEAT ENV
+      
+    sctp_b_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+        UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+        version: 1.0
+        name: SCTPBNet
+        description: SCTP B External Network
+        type: VL
+        category: VL
+        resourceVendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+          route_targets: 13979:105719
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.32/24 # HEAT ENV
+          gateway_ip: 107.243.37.33 # HEAT ENV
+          start_ip: 107.243.37.35 # HEAT ENV
+          end_ip: 107.243.37.62 # HEAT ENV
+      
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration15/resource-IpMuxDemux-template.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration15/resource-IpMuxDemux-template.yml
new file mode 100644
index 0000000..5b4ffd9
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration15/resource-IpMuxDemux-template.yml
@@ -0,0 +1,83 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: ec95fbf0-5d05-4fea-a11e-27869c0032e2
+  UUID: 41e4949f-85b3-4bc5-b7a2-2c166bf87270
+  name: IP_Mux_Demux
+  description: nbvnbb
+  type: VF
+  category: Allotted Resource
+  subcategory: IP Mux Demux
+  resourceVendor: stella
+  resourceVendorRelease: '1.0'
+imports:
+- newAllotted:
+    file: resource-Newallotted-template.yml
+topology_template:
+  inputs:
+    role:
+      type: string
+    ecomp_naming:
+      type: string
+    max_instances:
+      type: string
+    min_instances:
+      type: string
+    ecomp_homing:
+      type: string
+  node_templates:
+    allotedresource1:
+      type: org.openecomp.resource.vfc.AllottedResource
+      metadata:
+        invariantUUID: cce8d00f-1a7a-439d-b186-207599f8bbf2
+        UUID: 468a08a2-10a7-4ee7-86eb-dcf2e74a028f
+        customizationUUID: e7a3e375-9bec-4552-88d2-26cb5dcf580d
+        version: '1.0'
+        name: newAllotted
+        description: vcxvcx
+        type: VFC
+        category: Allotted Resource
+        subcategory: IP Mux Demux
+      properties:
+        ecomp_naming:
+          naming_policy:
+            get input: ecomp_naming
+        providing_service_invariant_uuid: 2bec5c69-b64e-4ffe-b74a-62f14d255d46
+        min_instances: 1
+        max_instances: 1
+        providing_service_uuid: 8ca1e477-77ec-47ed-a498-303fd0de9080
+        providing_service_name: ServiceAllMichael1801
+  groups: {
+    }
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.IpMuxDemux
+    capabilities:
+      Alloted resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Alloted resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Alloted resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration15/resource-TunnelXconn-template.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration15/resource-TunnelXconn-template.yml
new file mode 100644
index 0000000..434757d
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration15/resource-TunnelXconn-template.yml
@@ -0,0 +1,83 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: fadbb726-37b6-4939-ba78-9e86974232c5
+  UUID: 68d68207-007a-49f3-a9ae-5f88757d5061
+  name: Tunnel_XConn
+  description: stella
+  type: VF
+  category: Allotted Resource
+  subcategory: Tunnel XConnect
+  resourceVendor: stella
+  resourceVendorRelease: '1.0'
+imports:
+- newAllotted:
+    file: resource-Newallotted-template.yml
+topology_template:
+  inputs:
+    role:
+      type: string
+    ecomp_naming:
+      type: string
+    max_instances:
+      type: string
+    min_instances:
+      type: string
+    ecomp_homing:
+      type: string
+  node_templates:
+    allotedresource1:
+      type: org.openecomp.resource.vfc.AllottedResource
+      metadata:
+        invariantUUID: cce8d00f-1a7a-439d-b186-207599f8bbf2
+        UUID: 468a08a2-10a7-4ee7-86eb-dcf2e74a028f
+        customizationUUID: a92f5f2e-fe08-4711-84f6-2e64608aca13
+        version: '1.0'
+        name: newAllotted
+        description: vcxvcx
+        type: VFC
+        category: Allotted Resource
+        subcategory: IP Mux Demux
+      properties:
+        ecomp_naming:
+          naming_policy:
+            get input: ecomp_naming
+        providing_service_invariant_uuid: c964ef13-9d61-4d1b-a1a6-7060f3d7ddb4
+        min_instances: 1
+        max_instances: 1
+        providing_service_uuid: 3d6f84f5-84fd-441a-8fd8-401f71196712
+        providing_service_name: ServiceSprint38stella
+  groups: {
+    }
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.TunnelXconn
+    capabilities:
+      Alloted resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Alloted resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Alloted resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration15/service-Allottedipmux-template.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration15/service-Allottedipmux-template.yml
new file mode 100644
index 0000000..449e092
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration15/service-Allottedipmux-template.yml
@@ -0,0 +1,126 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: 9c5b8e77-6ae1-4817-994f-a14a03635868
+  UUID: 2722acbc-a8cb-4d73-ab14-9b2d79dc2131
+  name: AllottedIPMux
+  description: cbvbv
+  type: Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+imports:
+- Tunnel_XConn:
+    file: resource-TunnelXconn-template.yml
+- IP_Mux_Demux:
+    file: resource-IpMuxDemux-template.yml
+topology_template:
+  node_templates:
+    Tunnel_XConn 3:
+      type: org.openecomp.resource.vf.TunnelXconn
+      metadata:
+        invariantUUID: fadbb726-37b6-4939-ba78-9e86974232c5
+        UUID: 68d68207-007a-49f3-a9ae-5f88757d5061
+        customizationUUID: ae051f74-0d64-40f8-877b-791330cd7801
+        version: '1.0'
+        name: Tunnel_XConn
+        description: stella
+        type: VF
+        category: Allotted Resource
+        subcategory: Tunnel XConnect
+    IP_Mux_Demux 2:
+      type: org.openecomp.resource.vf.IpMuxDemux
+      metadata:
+        invariantUUID: ec95fbf0-5d05-4fea-a11e-27869c0032e2
+        UUID: 41e4949f-85b3-4bc5-b7a2-2c166bf87270
+        customizationUUID: 8cb6b8f7-a9bc-4745-92bd-f815f68fa6bc
+        version: '1.0'
+        name: IP_Mux_Demux
+        description: nbvnbb
+        type: VF
+        category: Allotted Resource
+        subcategory: IP Mux Demux
+    IP_Mux_Demux 1:
+      type: org.openecomp.resource.vf.IpMuxDemux
+      metadata:
+        invariantUUID: ec95fbf0-5d05-4fea-a11e-27869c0032e2
+        UUID: 41e4949f-85b3-4bc5-b7a2-2c166bf87270
+        customizationUUID: 7801f43f-f3f6-453f-89ea-4c182c569ad6
+        version: '1.0'
+        name: IP_Mux_Demux
+        description: nbvnbb
+        type: VF
+        category: Allotted Resource
+        subcategory: IP Mux Demux
+  groups: {
+    }
+  substitution_mappings:
+    node_type: org.openecomp.service.Allottedipmux
+    capabilities:
+      IP_Mux_Demux 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      Tunnel_XConn 3.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      IP_Mux_Demux 2.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Tunnel_XConn 3.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      IP_Mux_Demux 2.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      IP_Mux_Demux 2.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+      IP_Mux_Demux 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+      IP_Mux_Demux 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Tunnel_XConn 3.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration16/resource-AllottedResource-template_IpMux.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration16/resource-AllottedResource-template_IpMux.yml
new file mode 100644
index 0000000..84b412d
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration16/resource-AllottedResource-template_IpMux.yml
@@ -0,0 +1,78 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+  UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+  name: Allotted Resource
+  description: This is a VF - Allotted resource
+  type: VF
+  category: Allotted Resource
+  subcategory: IP Mux Demux
+  resourceVendor: '1'
+  resourceVendorRelease: '1'
+imports:
+- Alloted resource:
+    file: resource-AllotedResource-template.yml
+topology_template:
+  node_templates:
+    allotedresource1:
+      type: org.openecomp.resource.vfc.AllottedResource123
+      metadata:
+        invariantUUID: 666b409b-5614-41a8-945e-a53d68f5d439
+        UUID: df0c1c4d-1756-4b2a-998e-73f9f4d77afa
+        customizationUUID: 1c217567-5093-41f5-86e6-22c97ef24e75
+        version: '1.0'
+        name: Alloted resource
+        description: This is a VFC- Allotted resource
+        type: VFC
+        category: Allotted Resource123
+        subcategory: Allotted Resource
+      properties:
+        role: name
+        ecomp_naming:
+          naming_policy: test
+          ecomp_generated_naming: false
+          supplemental_data:
+            Key1: key1
+        max_instances: 1
+        min_instances: 1
+        ecomp_homing:
+          instance_node_target: Test
+          homing_policy: Test
+          supplemental_data:
+            Key: key
+          ecomp_selected_instance_node_target: false
+  groups: {
+    }
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.AllottedResource
+    capabilities:
+      Alloted resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Alloted resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Alloted resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration16/service-ServiceWithAllottedResourceIpmux-template.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration16/service-ServiceWithAllottedResourceIpmux-template.yml
new file mode 100644
index 0000000..1fba2e7
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration16/service-ServiceWithAllottedResourceIpmux-template.yml
@@ -0,0 +1,62 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: faa4359b-6ecf-4eeb-9960-6440d4cf1f2f
+  UUID: 614316ee-94ae-41b3-b59a-46e87d3d91a5
+  name: Service with allotted resource IPMUX
+  description: safa
+  type: Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+imports:
+- Allotted Resource:
+    file: resource-AllottedResource-template.yml
+topology_template:
+  node_templates:
+    allottedresource1:
+      type: org.openecomp.resource.vf.AllottedResource
+      metadata:
+        invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+        UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+        customizationUUID: 958fb310-184f-463d-b634-1660a626f320
+        version: '0.2'
+        name: Allotted Resource
+        description: This is a VF - Allotted resource
+        type: VF
+        category: Allotted Resource
+        subcategory: IP Mux Demux
+  groups: {
+    }
+  substitution_mappings:
+    node_type: org.openecomp.service.ServiceWithAllottedResourceIpmux
+    capabilities:
+      Allotted Resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Allotted Resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Allotted Resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration17/resource-AllottedResource1SameInvariant-IpMux-template.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration17/resource-AllottedResource1SameInvariant-IpMux-template.yml
new file mode 100644
index 0000000..2852d03
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration17/resource-AllottedResource1SameInvariant-IpMux-template.yml
@@ -0,0 +1,81 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+  UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+  name: Allotted Resource
+  description: This is a VF - Allotted resource
+  type: VF
+  category: Allotted Resource
+  subcategory: IP Mux Demux
+  resourceVendor: '1'
+  resourceVendorRelease: '1'
+imports:
+- Alloted resource:
+    file: resource-AllotedResource-template.yml
+topology_template:
+  node_templates:
+    allotedresource1:
+      type: org.openecomp.resource.vfc.AllottedResource
+      metadata:
+        invariantUUID: 666b409b-5614-41a8-945e-a53d68f5d439
+        UUID: df0c1c4d-1756-4b2a-998e-73f9f4d77afa
+        customizationUUID: 1c217567-5093-41f5-86e6-22c97ef24e75
+        version: '1.0'
+        name: Alloted resource
+        description: This is a VFC- Allotted resource
+        type: VFC
+        category: Allotted Resource
+        subcategory: Allotted Resource
+      properties:
+        role: name
+        ecomp_naming:
+          naming_policy: test
+          ecomp_generated_naming: false
+          supplemental_data:
+            Key1: key1
+        providing_service_invariant_uuid: 34a4d119-06bc-4ab4-8c5a-a498d638297c
+        min_instances: 1
+        max_instances: 1
+        providing_service_uuid: e14a509f-b611-4b30-b38c-bc7f11b679aa
+        providing_service_name: vVIGaaS
+        ecomp_homing:
+          instance_node_target: Test
+          homing_policy: Test
+          supplemental_data:
+            Key: key
+          ecomp_selected_instance_node_target: false
+  groups: {
+    }
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.AllottedResource
+    capabilities:
+      Alloted resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Alloted resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Alloted resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration17/resource-AllottedResource2SameInvariant-IpMux-template.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration17/resource-AllottedResource2SameInvariant-IpMux-template.yml
new file mode 100644
index 0000000..0986300
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration17/resource-AllottedResource2SameInvariant-IpMux-template.yml
@@ -0,0 +1,81 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+  UUID: f64afdc3-6308-4f0c-a476-0d39c8a1fb4d
+  name: Allotted Resource
+  description: This is a VF - Allotted resource
+  type: VF
+  category: Allotted Resource
+  subcategory: IP Mux Demux
+  resourceVendor: '1'
+  resourceVendorRelease: '1'
+imports:
+- Alloted resource:
+    file: resource-AllotedResource-template.yml
+topology_template:
+  node_templates:
+    allotedresource1:
+      type: org.openecomp.resource.vfc.AllottedResource
+      metadata:
+        invariantUUID: 666b409b-5614-41a8-945e-a53d68f5d439
+        UUID: df0c1c4d-1756-4b2a-998e-73f9f4d77afa
+        customizationUUID: 1c217567-5093-41f5-86e6-22c97ef24e75
+        version: '1.0'
+        name: Alloted resource
+        description: This is a VFC- Allotted resource
+        type: VFC
+        category: Allotted Resource
+        subcategory: Allotted Resource
+      properties:
+        role: name
+        ecomp_naming:
+          naming_policy: test
+          ecomp_generated_naming: false
+          supplemental_data:
+            Key1: key1
+        providing_service_invariant_uuid: 34a4d119-06bc-4ab4-8c5a-a498d638297c
+        min_instances: 1
+        max_instances: 1
+        providing_service_uuid: e24a509f-b611-4b30-b38c-bc7f11b679aa
+        providing_service_name: vVIGaaS
+        ecomp_homing:
+          instance_node_target: Test
+          homing_policy: Test
+          supplemental_data:
+            Key: key
+          ecomp_selected_instance_node_target: false
+  groups: {
+    }
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.AllottedResource
+    capabilities:
+      Alloted resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Alloted resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Alloted resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration17/service-ServiceWithAllottedResourcesIpMuxSameInvariant-template.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration17/service-ServiceWithAllottedResourcesIpMuxSameInvariant-template.yml
new file mode 100644
index 0000000..efd2dea
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration17/service-ServiceWithAllottedResourcesIpMuxSameInvariant-template.yml
@@ -0,0 +1,74 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: faa4359b-6ecf-4eeb-9960-6440d4cf1f2f
+  UUID: 614316ee-94ae-41b3-b59a-46e87d3d91a5
+  name: Service with allotted resource IPMUX
+  description: safa
+  type: Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+imports:
+- Allotted Resource:
+    file: resource-AllottedResource-template.yml
+topology_template:
+  node_templates:
+    allottedresource1:
+      type: org.openecomp.resource.vf.AllottedResource
+      metadata:
+        invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+        UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+        customizationUUID: 958fb310-184f-463d-b634-1660a626f320
+        version: '0.2'
+        name: Allotted Resource
+        description: This is a VF - Allotted resource
+        type: VF
+        category: Allotted Resource
+        subcategory: IP Mux Demux
+    allottedresource2:
+      type: org.openecomp.resource.vf.AllottedResource
+      metadata:
+        invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+        UUID: f64afdc3-6308-4f0c-a476-0d39c8a1fb4d
+        customizationUUID: 958fb310-184f-463d-b634-1660a626f320
+        version: '0.3'
+        name: Allotted Resource
+        description: This is a VF - Allotted resource
+        type: VF
+        category: Allotted Resource
+        subcategory: IP Mux Demux
+      groups: {
+    }
+  substitution_mappings:
+    node_type: org.openecomp.service.ServiceWithAllottedResourceIpmux
+    capabilities:
+      Allotted Resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Allotted Resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Allotted Resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration18/resource-AllottedResourceSameInvariantSameVers-IpMux-template.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration18/resource-AllottedResourceSameInvariantSameVers-IpMux-template.yml
new file mode 100644
index 0000000..2852d03
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration18/resource-AllottedResourceSameInvariantSameVers-IpMux-template.yml
@@ -0,0 +1,81 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+  UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+  name: Allotted Resource
+  description: This is a VF - Allotted resource
+  type: VF
+  category: Allotted Resource
+  subcategory: IP Mux Demux
+  resourceVendor: '1'
+  resourceVendorRelease: '1'
+imports:
+- Alloted resource:
+    file: resource-AllotedResource-template.yml
+topology_template:
+  node_templates:
+    allotedresource1:
+      type: org.openecomp.resource.vfc.AllottedResource
+      metadata:
+        invariantUUID: 666b409b-5614-41a8-945e-a53d68f5d439
+        UUID: df0c1c4d-1756-4b2a-998e-73f9f4d77afa
+        customizationUUID: 1c217567-5093-41f5-86e6-22c97ef24e75
+        version: '1.0'
+        name: Alloted resource
+        description: This is a VFC- Allotted resource
+        type: VFC
+        category: Allotted Resource
+        subcategory: Allotted Resource
+      properties:
+        role: name
+        ecomp_naming:
+          naming_policy: test
+          ecomp_generated_naming: false
+          supplemental_data:
+            Key1: key1
+        providing_service_invariant_uuid: 34a4d119-06bc-4ab4-8c5a-a498d638297c
+        min_instances: 1
+        max_instances: 1
+        providing_service_uuid: e14a509f-b611-4b30-b38c-bc7f11b679aa
+        providing_service_name: vVIGaaS
+        ecomp_homing:
+          instance_node_target: Test
+          homing_policy: Test
+          supplemental_data:
+            Key: key
+          ecomp_selected_instance_node_target: false
+  groups: {
+    }
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.AllottedResource
+    capabilities:
+      Alloted resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Alloted resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Alloted resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration18/service-ServiceWithAllottedResourcesIpMuxSameInvariantSameVers-template.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration18/service-ServiceWithAllottedResourcesIpMuxSameInvariantSameVers-template.yml
new file mode 100644
index 0000000..08c5329
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration18/service-ServiceWithAllottedResourcesIpMuxSameInvariantSameVers-template.yml
@@ -0,0 +1,74 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: faa4359b-6ecf-4eeb-9960-6440d4cf1f2f
+  UUID: 614316ee-94ae-41b3-b59a-46e87d3d91a5
+  name: Service with allotted resource IPMUX
+  description: safa
+  type: Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+imports:
+- Allotted Resource:
+    file: resource-AllottedResource-template.yml
+topology_template:
+  node_templates:
+    allottedresource1:
+      type: org.openecomp.resource.vf.AllottedResource
+      metadata:
+        invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+        UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+        customizationUUID: 958fb310-184f-463d-b634-1660a626f320
+        version: '0.2'
+        name: Allotted Resource
+        description: This is a VF - Allotted resource
+        type: VF
+        category: Allotted Resource
+        subcategory: IP Mux Demux
+    allottedresource2:
+      type: org.openecomp.resource.vf.AllottedResource
+      metadata:
+        invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+        UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+        customizationUUID: 958fb310-184f-463d-b634-1660a626f320
+        version: '0.2'
+        name: Allotted Resource
+        description: This is a VF - Allotted resource
+        type: VF
+        category: Allotted Resource
+        subcategory: IP Mux Demux
+      groups: {
+    }
+  substitution_mappings:
+    node_type: org.openecomp.service.ServiceWithAllottedResourceIpmux
+    capabilities:
+      Allotted Resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Allotted Resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Allotted Resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration2/Resource0-template.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration2/Resource0-template.yml
new file mode 100644
index 0000000..49666f9
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration2/Resource0-template.yml
@@ -0,0 +1,24 @@
+ # _______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           								 	  |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							  |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: 461a4839-2572-4dc1-b3be-dcb4c1908764
+  UUID: bca09900-d37a-48db-8cd2-de014b2fdbba
+  name: resource_0
+  description: description
+  type: VF
+  category: Generic
+  subcategory: Infrastructure
+  resourceVendor: vendor name
+  resourceVendorRelease: vendor release
+topology_template:
+  substitution_mapping:
+    node_type: org.openecomp.resource.vf.Resource0
+ # _______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           								 	  |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							  |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration4/service_vmme_template_1.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration4/service_vmme_template_1.yml
new file mode 100644
index 0000000..76bb35c
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration4/service_vmme_template_1.yml
@@ -0,0 +1,194 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  type: Service
+  name: vMME_Service
+  description: vMME_Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+    
+topology_template:
+
+  inputs:    
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity 
+      
+  node_templates:
+
+    mme: # vMME VNF
+      type: org.openecomp.resource.vasf.vmme
+
+      metadata:
+          invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version: 1.0
+          name: vMME_VF
+          description: vMME_VF
+          type: VF
+          category: Application L4+
+          subcategory: Firewall
+          resourceVendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+ 
+     
+  # Virtual Links (Networks)
+  
+    gtp_net:
+      type: org.openecomp.resource.vsl.VL
+      metadata:
+        invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+        UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+        version: 1.0
+        name: GTPNet
+        description: GTP External Network
+        type: VL
+        category: VL
+        resourceVendor: AT&T      
+      properties:
+        network_type: Tenant_Layer_3 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: {get_input: gtp_net_network_name}
+          route_targets: {get_input: gtp_net_route_targets}
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN 
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: {get_input: gtp_net_cidr}
+          gateway_ip: {get_input: gtp_net_gateway_ip}
+          start_ip: {get_input: gtp_net_start_ip}
+          end_ip: {get_input: gtp_net_end_ip}
+    
+    sctp_a_net:
+      type: org.openecomp.resource.vasl.VL
+      metadata:
+        invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+        UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+        version: 1.0
+        name: SCTPANet
+        description: SCTP A External Network
+        type: VL
+        category: VL
+        resourceVendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+          route_targets: 13979:105717
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.0/27 # HEAT ENV
+          gateway_ip: 107.243.37.1 # HEAT ENV
+          start_ip: 107.243.37.3 # HEAT ENV
+          end_ip: 107.243.37.30 # HEAT ENV
+      
+    sctp_b_net:
+      type: org.openecomp.resource.vasl.VL
+      metadata:
+        invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+        UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+        version: 1.0
+        name: SCTPBNet
+        description: SCTP B External Network
+        type: VL
+        category: VL
+        resourceVendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+          route_targets: 13979:105719
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.32/24 # HEAT ENV
+          gateway_ip: 107.243.37.33 # HEAT ENV
+          start_ip: 107.243.37.35 # HEAT ENV
+          end_ip: 107.243.37.62 # HEAT ENV
+      
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration5/service_vmme_template_1.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration5/service_vmme_template_1.yml
new file mode 100644
index 0000000..338f551
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration5/service_vmme_template_1.yml
@@ -0,0 +1,194 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  type: Service
+  name: vMME_Service
+  description: vMME_Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+    
+topology_template:
+
+  inputs:    
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity 
+      
+  node_templates:
+
+    mme: # vMME VNF
+      type: org.openecomp.resource.vf.vmme
+
+      metadata:
+         invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version: 1.0
+          name: vMME_VF
+          description: vMME_VF
+          type: VF
+          category: Application L4+
+          subcategory: Firewall
+          resourceVendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+ 
+     
+  # Virtual Links (Networks)
+  
+    gtp_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+        UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+        version: 1.0
+        name: GTPNet
+        description: GTP External Network
+        type: VL
+        category: VL
+        resourceVendor: AT&T      
+      properties:
+        network_type: Tenant_Layer_3 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: {get_input: gtp_net_network_name}
+          route_targets: {get_input: gtp_net_route_targets}
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN 
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: {get_input: gtp_net_cidr}
+          gateway_ip: {get_input: gtp_net_gateway_ip}
+          start_ip: {get_input: gtp_net_start_ip}
+          end_ip: {get_input: gtp_net_end_ip}
+    
+    sctp_a_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+        UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+        version: 1.0
+        name: SCTPANet
+        description: SCTP A External Network
+        type: VL
+        category: VL
+        resourceVendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+          route_targets: 13979:105717
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.0/27 # HEAT ENV
+          gateway_ip: 107.243.37.1 # HEAT ENV
+          start_ip: 107.243.37.3 # HEAT ENV
+          end_ip: 107.243.37.30 # HEAT ENV
+      
+    sctp_b_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+        UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+        version: 1.0
+        name: SCTPBNet
+        description: SCTP B External Network
+        type: VL
+        category: VL
+        resourceVendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+          route_targets: 13979:105719
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.32/24 # HEAT ENV
+          gateway_ip: 107.243.37.33 # HEAT ENV
+          start_ip: 107.243.37.35 # HEAT ENV
+          end_ip: 107.243.37.62 # HEAT ENV
+      
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration6/Resource0-template.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration6/Resource0-template.yml
new file mode 100644
index 0000000..49666f9
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration6/Resource0-template.yml
@@ -0,0 +1,24 @@
+ # _______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           								 	  |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							  |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: 461a4839-2572-4dc1-b3be-dcb4c1908764
+  UUID: bca09900-d37a-48db-8cd2-de014b2fdbba
+  name: resource_0
+  description: description
+  type: VF
+  category: Generic
+  subcategory: Infrastructure
+  resourceVendor: vendor name
+  resourceVendorRelease: vendor release
+topology_template:
+  substitution_mapping:
+    node_type: org.openecomp.resource.vf.Resource0
+ # _______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           								 	  |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							  |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration6/service_vmme_template_1.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration6/service_vmme_template_1.yml
new file mode 100644
index 0000000..4daeca3
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration6/service_vmme_template_1.yml
@@ -0,0 +1,194 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  type: Service
+  name: vMME_Service
+  description: vMME_Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+    
+topology_template:
+
+  inputs:    
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity 
+      
+  node_templates:
+
+    mme: # vMME VNF
+      type: org.openecomp.resource.vsf.vmme
+
+      metadata:
+          invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version: 1.0
+          name: vMME_VF
+          description: vMME_VF
+          type: VF
+          category: Application L4+
+          subcategory: Firewall
+          resourceVendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+ 
+     
+  # Virtual Links (Networks)
+  
+    gtp_net:
+      type: org.openecomp.resource.vsdl.VL
+      metadata:
+        invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+        UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+        version: 1.0
+        name: GTPNet
+        description: GTP External Network
+        type: VL
+        category: VL
+        resourceVendor: AT&T      
+      properties:
+        network_type: Tenant_Layer_3 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: {get_input: gtp_net_network_name}
+          route_targets: {get_input: gtp_net_route_targets}
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN 
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: {get_input: gtp_net_cidr}
+          gateway_ip: {get_input: gtp_net_gateway_ip}
+          start_ip: {get_input: gtp_net_start_ip}
+          end_ip: {get_input: gtp_net_end_ip}
+    
+    sctp_a_net:
+      type: org.openecomp.resource.vsdl.VL
+      metadata:
+        invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+        UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+        version: 1.0
+        name: SCTPANet
+        description: SCTP A External Network
+        type: VL
+        category: VL
+        resourceVendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+          route_targets: 13979:105717
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.0/27 # HEAT ENV
+          gateway_ip: 107.243.37.1 # HEAT ENV
+          start_ip: 107.243.37.3 # HEAT ENV
+          end_ip: 107.243.37.30 # HEAT ENV
+      
+    sctp_b_net:
+      type: org.openecomp.resource.vsdl.VL
+      metadata:
+        invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+        UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+        version: 1.0
+        name: SCTPBNet
+        description: SCTP B External Network
+        type: VL
+        category: VL
+        resourceVendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+          route_targets: 13979:105719
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.32/24 # HEAT ENV
+          gateway_ip: 107.243.37.33 # HEAT ENV
+          start_ip: 107.243.37.35 # HEAT ENV
+          end_ip: 107.243.37.62 # HEAT ENV
+      
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration8/service_vmme_template_1.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration8/service_vmme_template_1.yml
new file mode 100644
index 0000000..ff9e604
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration8/service_vmme_template_1.yml
@@ -0,0 +1,194 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  invariantUUID:
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  type: Service
+  name: vMME_Service
+  description: vMME_Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+    
+topology_template:
+
+  inputs:    
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity 
+      
+  node_templates:
+
+    mme: # vMME VNF
+      type: org.openecomp.resource.vf.vmme
+
+      metadata:
+          invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version: 1.0
+          name: vMME_VF
+          description: vMME_VF
+          type: VF
+          category: Application L4+
+          subcategory: Firewall
+          resourceVendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+ 
+     
+  # Virtual Links (Networks)
+  
+    gtp_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+        UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+        version: 1.0
+        name: GTPNet
+        description: GTP External Network
+        type: VL
+        category: VL
+        resourceVendor: AT&T      
+      properties:
+        network_type: Tenant_Layer_3 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: {get_input: gtp_net_network_name}
+          route_targets: {get_input: gtp_net_route_targets}
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN 
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: {get_input: gtp_net_cidr}
+          gateway_ip: {get_input: gtp_net_gateway_ip}
+          start_ip: {get_input: gtp_net_start_ip}
+          end_ip: {get_input: gtp_net_end_ip}
+    
+    sctp_a_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+        UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+        version: 1.0
+        name: SCTPANet
+        description: SCTP A External Network
+        type: VL
+        category: VL
+        resourceVendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+          route_targets: 13979:105717
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.0/27 # HEAT ENV
+          gateway_ip: 107.243.37.1 # HEAT ENV
+          start_ip: 107.243.37.3 # HEAT ENV
+          end_ip: 107.243.37.30 # HEAT ENV
+      
+    sctp_b_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+        UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+        version: 1.0
+        name: SCTPBNet
+        description: SCTP B External Network
+        type: VL
+        category: VL
+        resourceVendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+          route_targets: 13979:105719
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.32/24 # HEAT ENV
+          gateway_ip: 107.243.37.33 # HEAT ENV
+          start_ip: 107.243.37.35 # HEAT ENV
+          end_ip: 107.243.37.62 # HEAT ENV
+      
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration9/service_vmme_template_1.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration9/service_vmme_template_1.yml
new file mode 100644
index 0000000..403ad87
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGeneration9/service_vmme_template_1.yml
@@ -0,0 +1,194 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  UUID:
+  type: Service
+  name: vMME_Service
+  description: vMME_Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+    
+topology_template:
+
+  inputs:    
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity 
+      
+  node_templates:
+
+    mme: # vMME VNF
+      type: org.openecomp.resource.vf.vmme
+
+      metadata:
+          invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version: 1.0
+          name: vMME_VF
+          description: vMME_VF
+          type: VF
+          category: Application L4+
+          subcategory: Firewall
+          resourceVendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+ 
+     
+  # Virtual Links (Networks)
+  
+    gtp_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+        UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+        version: 1.0
+        name: GTPNet
+        description: GTP External Network
+        type: VL
+        category: VL
+        resourceVendor: AT&T      
+      properties:
+        network_type: Tenant_Layer_3 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: {get_input: gtp_net_network_name}
+          route_targets: {get_input: gtp_net_route_targets}
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN 
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: {get_input: gtp_net_cidr}
+          gateway_ip: {get_input: gtp_net_gateway_ip}
+          start_ip: {get_input: gtp_net_start_ip}
+          end_ip: {get_input: gtp_net_end_ip}
+    
+    sctp_a_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+        UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+        version: 1.0
+        name: SCTPANet
+        description: SCTP A External Network
+        type: VL
+        category: VL
+        resourceVendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+          route_targets: 13979:105717
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.0/27 # HEAT ENV
+          gateway_ip: 107.243.37.1 # HEAT ENV
+          start_ip: 107.243.37.3 # HEAT ENV
+          end_ip: 107.243.37.30 # HEAT ENV
+      
+    sctp_b_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+        UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+        version: 1.0
+        name: SCTPBNet
+        description: SCTP B External Network
+        type: VL
+        category: VL
+        resourceVendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+          route_targets: 13979:105719
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.32/24 # HEAT ENV
+          gateway_ip: 107.243.37.33 # HEAT ENV
+          start_ip: 107.243.37.35 # HEAT ENV
+          end_ip: 107.243.37.62 # HEAT ENV
+      
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGenerationAllottedResourceWithVF/resource-IpMuxDemux-template_AllRes_VF.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGenerationAllottedResourceWithVF/resource-IpMuxDemux-template_AllRes_VF.yml
new file mode 100644
index 0000000..d8885bb
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGenerationAllottedResourceWithVF/resource-IpMuxDemux-template_AllRes_VF.yml
@@ -0,0 +1,81 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: 707b2850-e830-4b00-9902-879f44ac05a4
+  UUID: 495b483b-282a-45df-bbfe-63d1d1d80813
+  name: IP_Mux_Demux
+  description: IP_Mux_Demux
+  type: VF
+  category: Allotted Resource
+  subcategory: IP Mux Demux
+  resourceVendor: '1'
+  resourceVendorRelease: '1'
+imports:
+- Allotedresource:
+    file: resource-Allotedresource-template.yml
+topology_template:
+  inputs:
+    role:
+      type: string
+    ecomp_naming:
+      type: string
+    max_instances:
+      type: string
+    min_instances:
+      type: string
+    ecomp_homing:
+      type: string
+  node_templates:
+    Alloted resource 1:
+      type: org.openecomp.resource.vfc.AllottedResource
+      metadata:
+        invariantUUID: bc0bebc1-6dc1-4637-883e-aed77bffd63c
+        UUID: 7763d3a3-048f-4e5b-96c5-e7818dbc066a
+        customizationUUID: 5eac2a36-bcb5-4158-ace4-802b81e87248
+        version: '1.0'
+        name: Allotedresource
+        description: Allotedresource
+        type: VFC
+        category: Allotted Resource
+        subcategory: IP Mux Demux
+      properties:
+        ecomp_naming:
+          naming_policy:
+            get input: ecomp_naming
+        providing_service_invariant_uuid: e42ea8ff-1862-43f4-a597-4b885cf3c6e5
+        min_instances: 1
+        max_instances: 1
+        providing_service_uuid: 2fb4b63d-7ec8-4fc0-98c7-a1c51fb4b794
+        providing_service_name: vVIGaaS
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.IpMuxDemux
+    capabilities:
+      Alloted resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Alloted resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Alloted resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGenerationAllottedResourceWithVF/resource-ServiceAdmin-template_AllRes_VF.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGenerationAllottedResourceWithVF/resource-ServiceAdmin-template_AllRes_VF.yml
new file mode 100644
index 0000000..549c18b
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGenerationAllottedResourceWithVF/resource-ServiceAdmin-template_AllRes_VF.yml
@@ -0,0 +1,81 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: 0df08d3e-9701-4f5a-b3ed-82a0b504b366
+  UUID: a9c6246c-0807-4a43-a64c-442a170c2088
+  name: service_admin
+  description: service_admin
+  type: VF
+  category: Allotted Resource
+  subcategory: Service admin
+  resourceVendor: '1'
+  resourceVendorRelease: '1'
+imports:
+- Allotedresource:
+    file: resource-Allotedresource-template.yml
+topology_template:
+  inputs:
+    role:
+      type: string
+    ecomp_naming:
+      type: string
+    max_instances:
+      type: string
+    min_instances:
+      type: string
+    ecomp_homing:
+      type: string
+  node_templates:
+    Alloted resource 1:
+      type: org.openecomp.resource.vfc.AllottedResource
+      metadata:
+        invariantUUID: bc0bebc1-6dc1-4637-883e-aed77bffd63c
+        UUID: 7763d3a3-048f-4e5b-96c5-e7818dbc066a
+        customizationUUID: f61f785d-2c82-4d6d-9184-8cbdf2df4da0
+        version: '1.0'
+        name: Allotedresource
+        description: Allotedresource
+        type: VFC
+        category: Allotted Resource
+        subcategory: Service admin
+      properties:
+        ecomp_naming:
+          naming_policy:
+            get input: ecomp_naming
+        providing_service_invariant_uuid: e42ea8ff-1862-43f4-a597-4b885cf3c6e5
+        min_instances: 1
+        max_instances: 1
+        providing_service_uuid: 2fb4b63d-7ec8-4fc0-98c7-a1c51fb4b794
+        providing_service_name: HNPortalaaS
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.ServiceAdmin
+    capabilities:
+      Alloted resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Alloted resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Alloted resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGenerationAllottedResourceWithVF/resource-TunnelXconn-template_AllRes_VF.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGenerationAllottedResourceWithVF/resource-TunnelXconn-template_AllRes_VF.yml
new file mode 100644
index 0000000..1eb97a0
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGenerationAllottedResourceWithVF/resource-TunnelXconn-template_AllRes_VF.yml
@@ -0,0 +1,81 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: 63b95d9a-9c89-40d3-a646-36a1418c5246
+  UUID: ae79ba1b-5d12-4813-b01c-755fa6c800bb
+  name: Tunnel_XConn
+  description: Tunnel_XConn
+  type: VF
+  category: Allotted Resource
+  subcategory: Tunnel XConnect
+  resourceVendor: '1'
+  resourceVendorRelease: '1'
+imports:
+- Allotedresource:
+    file: resource-Allotedresource-template.yml
+topology_template:
+  inputs:
+    role:
+      type: string
+    ecomp_naming:
+      type: string
+    min_instances:
+      type: string
+    max_instances:
+      type: string
+    ecomp_homing:
+      type: string
+  node_templates:
+    Alloted resource 1:
+      type: org.openecomp.resource.vfc.AllottedResource
+      metadata:
+        invariantUUID: bc0bebc1-6dc1-4637-883e-aed77bffd63c
+        UUID: 7763d3a3-048f-4e5b-96c5-e7818dbc066a
+        customizationUUID: 22ca20ca-1577-46d3-b3ef-77483cca37d6
+        version: '1.0'
+        name: Allotedresource
+        description: Allotedresource
+        type: VFC
+        category: Allotted Resource
+        subcategory: Tunnel XConnect
+      properties:
+        ecomp_naming:
+          naming_policy:
+            get input: ecomp_naming
+        providing_service_invariant_uuid: 34a4d119-06bc-4ab4-8c5a-a498d638297c
+        min_instances: 1
+        max_instances: 1
+        providing_service_uuid: 2fb4b63d-7ec8-4fc0-98c7-a1c51fb4b794
+        providing_service_name: vVIGaaS
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.TunnelXconn
+    capabilities:
+      Alloted resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Alloted resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Alloted resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGenerationAllottedResourceWithVF/resource-VhnfNonHeat-template_AllRes_VF.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGenerationAllottedResourceWithVF/resource-VhnfNonHeat-template_AllRes_VF.yml
new file mode 100644
index 0000000..8ec1c19
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGenerationAllottedResourceWithVF/resource-VhnfNonHeat-template_AllRes_VF.yml
@@ -0,0 +1,24 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: f61adc31-6004-4377-a661-090f59e6b32a
+  UUID: 2118e830-5e0d-409a-9d7a-63b6a72d6f5f
+  name: vHNF non Heat
+  description: vHNF non Heat
+  type: VF
+  category: Generic
+  subcategory: Network Elements
+  resourceVendor: '1'
+  resourceVendorRelease: '1'
+topology_template:
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.VhnfNonHeat
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGenerationAllottedResourceWithVF/service-SdWan-template_AllRes_VF.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGenerationAllottedResourceWithVF/service-SdWan-template_AllRes_VF.yml
new file mode 100644
index 0000000..bc3ab6d
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testArtifactGenerationAllottedResourceWithVF/service-SdWan-template_AllRes_VF.yml
@@ -0,0 +1,233 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: 3d8b7a76-7c47-4974-b5b9-e24c54b817a2
+  UUID: eb31504f-9f60-4936-a2f2-8ac592b611a6
+  name: SD-WAN
+  description: SD-WAN
+  type: Service
+  category: Network L4+
+  serviceEcompNaming: false
+  serviceHoming: false
+imports:
+- service_admin:
+    file: resource-ServiceAdmin-template.yml
+- Tunnel_XConn:
+    file: resource-TunnelXconn-template.yml
+- vHNF non Heat:
+    file: resource-VhnfNonHeat-template.yml
+- IP_Mux_Demux:
+    file: resource-IpMuxDemux-template.yml
+topology_template:
+  node_templates:
+    Sec_IP_Mux_Demux:
+      type: org.openecomp.resource.vf.IpMuxDemux
+      metadata:
+        invariantUUID: 707b2850-e830-4b00-9902-879f44ac05a4
+        UUID: 495b483b-282a-45df-bbfe-63d1d1d80813
+        customizationUUID: f4b764bb-6721-4219-8c69-7ce61969f755
+        version: '0.1'
+        name: IP_Mux_Demux
+        description: IP_Mux_Demux
+        type: VF
+        category: Allotted Resource
+        subcategory: IP Mux Demux
+    Pri_Tunnel_XConn:
+      type: org.openecomp.resource.vf.TunnelXconn
+      metadata:
+        invariantUUID: 63b95d9a-9c89-40d3-a646-36a1418c5246
+        UUID: ae79ba1b-5d12-4813-b01c-755fa6c800bb
+        customizationUUID: 96d0bbf6-d9f7-441d-8f00-67d79dbf30de
+        version: '0.1'
+        name: Tunnel_XConn
+        description: Tunnel_XConn
+        type: VF
+        category: Allotted Resource
+        subcategory: Tunnel XConnect
+    Pri_service_admin:
+      type: org.openecomp.resource.vf.ServiceAdmin
+      metadata:
+        invariantUUID: 0df08d3e-9701-4f5a-b3ed-82a0b504b366
+        UUID: a9c6246c-0807-4a43-a64c-442a170c2088
+        customizationUUID: 6b4a2a55-3b82-4799-8329-4fc2939fd5b5
+        version: '0.1'
+        name: service_admin
+        description: service_admin
+        type: VF
+        category: Allotted Resource
+        subcategory: Service admin
+    Pri_IP_Mux_Demux:
+      type: org.openecomp.resource.vf.IpMuxDemux
+      metadata:
+        invariantUUID: 707b2850-e830-4b00-9902-879f44ac05a4
+        UUID: 495b483b-282a-45df-bbfe-63d1d1d80813
+        customizationUUID: d8f656d9-179d-4f02-9a46-8af7421eb2a0
+        version: '0.1'
+        name: IP_Mux_Demux
+        description: IP_Mux_Demux
+        type: VF
+        category: Allotted Resource
+        subcategory: IP Mux Demux
+    Sec_Tunnel_XConn:
+      type: org.openecomp.resource.vf.TunnelXconn
+      metadata:
+        invariantUUID: 63b95d9a-9c89-40d3-a646-36a1418c5246
+        UUID: ae79ba1b-5d12-4813-b01c-755fa6c800bb
+        customizationUUID: b432136d-0a2a-460b-a3da-f921e1e0dcfa
+        version: '0.1'
+        name: Tunnel_XConn
+        description: Tunnel_XConn
+        type: VF
+        category: Allotted Resource
+        subcategory: Tunnel XConnect
+    vHNF non Heat 22:
+      type: org.openecomp.resource.vf.VhnfNonHeat
+      metadata:
+        invariantUUID: f61adc31-6004-4377-a661-090f59e6b32a
+        UUID: 2118e830-5e0d-409a-9d7a-63b6a72d6f5f
+        customizationUUID: 9c7a5f7f-6b17-4066-a6f1-094ea925495b
+        version: '0.1'
+        name: vHNF non Heat
+        description: vHNF non Heat
+        type: VF
+        category: Generic
+        subcategory: Network Elements
+    Sec_service_admin:
+      type: org.openecomp.resource.vf.ServiceAdmin
+      metadata:
+        invariantUUID: 0df08d3e-9701-4f5a-b3ed-82a0b504b366
+        UUID: a9c6246c-0807-4a43-a64c-442a170c2088
+        customizationUUID: 5a8ef05b-451f-40f4-9531-3ee00bd3c5c4
+        version: '0.1'
+        name: service_admin
+        description: service_admin
+        type: VF
+        category: Allotted Resource
+        subcategory: Service admin
+  substitution_mappings:
+    node_type: org.openecomp.service.SdWan
+    capabilities:
+      Sec_service_admin.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      Sec_IP_Mux_Demux.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      Pri_service_admin.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      Pri_IP_Mux_Demux.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      Pri_Tunnel_XConn.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      Sec_Tunnel_XConn.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Pri_service_admin.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Sec_Tunnel_XConn.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+      Sec_service_admin.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+      Pri_IP_Mux_Demux.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+      Pri_Tunnel_XConn.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+      Sec_service_admin.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Pri_service_admin.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+      Sec_IP_Mux_Demux.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+      Sec_IP_Mux_Demux.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Pri_Tunnel_XConn.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Sec_Tunnel_XConn.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Pri_IP_Mux_Demux.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testErrorWhenAllottedResourceWithOutDependingServiceId/resource-IpMuxDemux-template_WithOutDepSerId.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testErrorWhenAllottedResourceWithOutDependingServiceId/resource-IpMuxDemux-template_WithOutDepSerId.yml
new file mode 100644
index 0000000..2e06cf4
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testErrorWhenAllottedResourceWithOutDependingServiceId/resource-IpMuxDemux-template_WithOutDepSerId.yml
@@ -0,0 +1,80 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: 707b2850-e830-4b00-9902-879f44ac05a4
+  UUID: 495b483b-282a-45df-bbfe-63d1d1d80813
+  name: IP_Mux_Demux
+  description: IP_Mux_Demux
+  type: VF
+  category: Allotted Resource
+  subcategory: Allotted Resource
+  resourceVendor: '1'
+  resourceVendorRelease: '1'
+imports:
+- Allotedresource:
+    file: resource-Allotedresource-template.yml
+topology_template:
+  inputs:
+    role:
+      type: string
+    ecomp_naming:
+      type: string
+    max_instances:
+      type: string
+    min_instances:
+      type: string
+    ecomp_homing:
+      type: string
+  node_templates:
+    Alloted resource 1:
+      type: org.openecomp.resource.vfc.AllottedResource
+      metadata:
+        invariantUUID: bc0bebc1-6dc1-4637-883e-aed77bffd63c
+        UUID: 7763d3a3-048f-4e5b-96c5-e7818dbc066a
+        customizationUUID: 5eac2a36-bcb5-4158-ace4-802b81e87248
+        version: '1.0'
+        name: Allotedresource
+        description: Allotedresource
+        type: VFC
+        category: Allotted Resource
+        subcategory: Allotted Resource
+      properties:
+        ecomp_naming:
+          naming_policy:
+            get input: ecomp_naming
+        providing_service_invariant_uuid:
+        min_instances: 1
+        max_instances: 1
+        providing_service_uuid:
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.IpMuxDemux
+    capabilities:
+      Alloted resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Alloted resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Alloted resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testErrorWhenAllottedResourceWithOutDependingServiceId/resource-ServiceAdmin-template_WithOutDepSerId.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testErrorWhenAllottedResourceWithOutDependingServiceId/resource-ServiceAdmin-template_WithOutDepSerId.yml
new file mode 100644
index 0000000..c8a641d
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testErrorWhenAllottedResourceWithOutDependingServiceId/resource-ServiceAdmin-template_WithOutDepSerId.yml
@@ -0,0 +1,81 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: 0df08d3e-9701-4f5a-b3ed-82a0b504b366
+  UUID: a9c6246c-0807-4a43-a64c-442a170c2088
+  name: service_admin
+  description: service_admin
+  type: VF
+  category: Allotted Resource
+  subcategory: Allotted Resource
+  resourceVendor: '1'
+  resourceVendorRelease: '1'
+imports:
+- Allotedresource:
+    file: resource-Allotedresource-template.yml
+topology_template:
+  inputs:
+    role:
+      type: string
+    ecomp_naming:
+      type: string
+    max_instances:
+      type: string
+    min_instances:
+      type: string
+    ecomp_homing:
+      type: string
+  node_templates:
+    Alloted resource 1:
+      type: org.openecomp.resource.vfc.AllottedResource
+      metadata:
+        invariantUUID: bc0bebc1-6dc1-4637-883e-aed77bffd63c
+        UUID: 7763d3a3-048f-4e5b-96c5-e7818dbc066a
+        customizationUUID: f61f785d-2c82-4d6d-9184-8cbdf2df4da0
+        version: '1.0'
+        name: Allotedresource
+        description: Allotedresource
+        type: VFC
+        category: Allotted Resource
+        subcategory: Allotted Resource
+      properties:
+        ecomp_naming:
+          naming_policy:
+            get input: ecomp_naming
+        providing_service_invariant_uuid:
+        min_instances: 1
+        max_instances: 1
+        providing_service_uuid:
+        providing_service_name: HNPortalaaS
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.ServiceAdmin
+    capabilities:
+      Alloted resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Alloted resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Alloted resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testErrorWhenAllottedResourceWithOutDependingServiceId/resource-TunnelXconn-template_WithOutDepSerId.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testErrorWhenAllottedResourceWithOutDependingServiceId/resource-TunnelXconn-template_WithOutDepSerId.yml
new file mode 100644
index 0000000..eb248d1
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testErrorWhenAllottedResourceWithOutDependingServiceId/resource-TunnelXconn-template_WithOutDepSerId.yml
@@ -0,0 +1,81 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: 63b95d9a-9c89-40d3-a646-36a1418c5246
+  UUID: ae79ba1b-5d12-4813-b01c-755fa6c800bb
+  name: Tunnel_XConn
+  description: Tunnel_XConn
+  type: VF
+  category: Allotted Resource
+  subcategory: Allotted Resource
+  resourceVendor: '1'
+  resourceVendorRelease: '1'
+imports:
+- Allotedresource:
+    file: resource-Allotedresource-template.yml
+topology_template:
+  inputs:
+    role:
+      type: string
+    ecomp_naming:
+      type: string
+    min_instances:
+      type: string
+    max_instances:
+      type: string
+    ecomp_homing:
+      type: string
+  node_templates:
+    Alloted resource 1:
+      type: org.openecomp.resource.vfc.AllottedResource
+      metadata:
+        invariantUUID: bc0bebc1-6dc1-4637-883e-aed77bffd63c
+        UUID: 7763d3a3-048f-4e5b-96c5-e7818dbc066a
+        customizationUUID: 22ca20ca-1577-46d3-b3ef-77483cca37d6
+        version: '1.0'
+        name: Allotedresource
+        description: Allotedresource
+        type: VFC
+        category: Allotted Resource
+        subcategory: Allotted Resource
+      properties:
+        ecomp_naming:
+          naming_policy:
+            get input: ecomp_naming
+        providing_service_invariant_uuid:
+        min_instances: 1
+        max_instances: 1
+        providing_service_uuid:
+        providing_service_name: vVIGaaS
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.TunnelXconn
+    capabilities:
+      Alloted resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Alloted resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Alloted resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testErrorWhenAllottedResourceWithOutDependingServiceId/resource-VhnfNonHeat-template_WithOutDepSerId.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testErrorWhenAllottedResourceWithOutDependingServiceId/resource-VhnfNonHeat-template_WithOutDepSerId.yml
new file mode 100644
index 0000000..8ec1c19
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testErrorWhenAllottedResourceWithOutDependingServiceId/resource-VhnfNonHeat-template_WithOutDepSerId.yml
@@ -0,0 +1,24 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: f61adc31-6004-4377-a661-090f59e6b32a
+  UUID: 2118e830-5e0d-409a-9d7a-63b6a72d6f5f
+  name: vHNF non Heat
+  description: vHNF non Heat
+  type: VF
+  category: Generic
+  subcategory: Network Elements
+  resourceVendor: '1'
+  resourceVendorRelease: '1'
+topology_template:
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.VhnfNonHeat
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testErrorWhenAllottedResourceWithOutDependingServiceId/service-SdWan-template_WithOutDepSerId.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testErrorWhenAllottedResourceWithOutDependingServiceId/service-SdWan-template_WithOutDepSerId.yml
new file mode 100644
index 0000000..51d8c2d
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testErrorWhenAllottedResourceWithOutDependingServiceId/service-SdWan-template_WithOutDepSerId.yml
@@ -0,0 +1,233 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: 3d8b7a76-7c47-4974-b5b9-e24c54b817a2
+  UUID: eb31504f-9f60-4936-a2f2-8ac592b611a6
+  name: SD-WAN
+  description: SD-WAN
+  type: Service
+  category: Network L4+
+  serviceEcompNaming: false
+  serviceHoming: false
+imports:
+- service_admin:
+    file: resource-ServiceAdmin-template.yml
+- Tunnel_XConn:
+    file: resource-TunnelXconn-template.yml
+- vHNF non Heat:
+    file: resource-VhnfNonHeat-template.yml
+- IP_Mux_Demux:
+    file: resource-IpMuxDemux-template.yml
+topology_template:
+  node_templates:
+    Sec_IP_Mux_Demux:
+      type: org.openecomp.resource.vf.IpMuxDemux
+      metadata:
+        invariantUUID: 707b2850-e830-4b00-9902-879f44ac05a4
+        UUID: 495b483b-282a-45df-bbfe-63d1d1d80813
+        customizationUUID: f4b764bb-6721-4219-8c69-7ce61969f755
+        version: '0.1'
+        name: IP_Mux_Demux
+        description: IP_Mux_Demux
+        type: VF
+        category: Allotted Resource
+        subcategory: Allotted Resource
+    Pri_Tunnel_XConn:
+      type: org.openecomp.resource.vf.TunnelXconn
+      metadata:
+        invariantUUID: 63b95d9a-9c89-40d3-a646-36a1418c5246
+        UUID: ae79ba1b-5d12-4813-b01c-755fa6c800bb
+        customizationUUID: 96d0bbf6-d9f7-441d-8f00-67d79dbf30de
+        version: '0.1'
+        name: Tunnel_XConn
+        description: Tunnel_XConn
+        type: VF
+        category: Allotted Resource
+        subcategory: Allotted Resource
+    Pri_service_admin:
+      type: org.openecomp.resource.vf.ServiceAdmin
+      metadata:
+        invariantUUID: 0df08d3e-9701-4f5a-b3ed-82a0b504b366
+        UUID: a9c6246c-0807-4a43-a64c-442a170c2088
+        customizationUUID: 6b4a2a55-3b82-4799-8329-4fc2939fd5b5
+        version: '0.1'
+        name: service_admin
+        description: service_admin
+        type: VF
+        category: Allotted Resource
+        subcategory: Allotted Resource
+    Pri_IP_Mux_Demux:
+      type: org.openecomp.resource.vf.IpMuxDemux
+      metadata:
+        invariantUUID: 707b2850-e830-4b00-9902-879f44ac05a4
+        UUID: 495b483b-282a-45df-bbfe-63d1d1d80813
+        customizationUUID: d8f656d9-179d-4f02-9a46-8af7421eb2a0
+        version: '0.1'
+        name: IP_Mux_Demux
+        description: IP_Mux_Demux
+        type: VF
+        category: Allotted Resource
+        subcategory: Allotted Resource
+    Sec_Tunnel_XConn:
+      type: org.openecomp.resource.vf.TunnelXconn
+      metadata:
+        invariantUUID: 63b95d9a-9c89-40d3-a646-36a1418c5246
+        UUID: ae79ba1b-5d12-4813-b01c-755fa6c800bb
+        customizationUUID: b432136d-0a2a-460b-a3da-f921e1e0dcfa
+        version: '0.1'
+        name: Tunnel_XConn
+        description: Tunnel_XConn
+        type: VF
+        category: Allotted Resource
+        subcategory: Allotted Resource
+    vHNF non Heat 22:
+      type: org.openecomp.resource.vf.VhnfNonHeat
+      metadata:
+        invariantUUID: f61adc31-6004-4377-a661-090f59e6b32a
+        UUID: 2118e830-5e0d-409a-9d7a-63b6a72d6f5f
+        customizationUUID: 9c7a5f7f-6b17-4066-a6f1-094ea925495b
+        version: '0.1'
+        name: vHNF non Heat
+        description: vHNF non Heat
+        type: VF
+        category: Generic
+        subcategory: Network Elements
+    Sec_service_admin:
+      type: org.openecomp.resource.vf.ServiceAdmin
+      metadata:
+        invariantUUID: 0df08d3e-9701-4f5a-b3ed-82a0b504b366
+        UUID: a9c6246c-0807-4a43-a64c-442a170c2088
+        customizationUUID: 5a8ef05b-451f-40f4-9531-3ee00bd3c5c4
+        version: '0.1'
+        name: service_admin
+        description: service_admin
+        type: VF
+        category: Allotted Resource
+        subcategory: Allotted Resource
+  substitution_mappings:
+    node_type: org.openecomp.service.SdWan
+    capabilities:
+      Sec_service_admin.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      Sec_IP_Mux_Demux.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      Pri_service_admin.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      Pri_IP_Mux_Demux.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      Pri_Tunnel_XConn.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      Sec_Tunnel_XConn.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Pri_service_admin.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Sec_Tunnel_XConn.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+      Sec_service_admin.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+      Pri_IP_Mux_Demux.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+      Pri_Tunnel_XConn.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+      Sec_service_admin.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Pri_service_admin.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+      Sec_IP_Mux_Demux.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+      Sec_IP_Mux_Demux.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Pri_Tunnel_XConn.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Sec_Tunnel_XConn.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Pri_IP_Mux_Demux.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testErrorWhenInvalidInvId/service_vmme_template_1.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testErrorWhenInvalidInvId/service_vmme_template_1.yml
new file mode 100644
index 0000000..50c4c82
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testErrorWhenInvalidInvId/service_vmme_template_1.yml
@@ -0,0 +1,194 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  invariantUUID: 7787da18-123
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  type: Service
+  name: vMME_Service
+  description: vMME_Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+    
+topology_template:
+
+  inputs:    
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity 
+      
+  node_templates:
+
+    mme: # vMME VNF
+      type: org.openecomp.resource.vf.vmme
+
+      metadata:
+          invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version: 1.0
+          name: vMME_VF
+          description: vMME_VF
+          type: VF
+          category: Application L4+
+          subcategory: Firewall
+          resourceVendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+ 
+     
+  # Virtual Links (Networks)
+  
+    gtp_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+        UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+        version: 1.0
+        name: GTPNet
+        description: GTP External Network
+        type: VL
+        category: VL
+        resourceVendor: AT&T      
+      properties:
+        network_type: Tenant_Layer_3 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: {get_input: gtp_net_network_name}
+          route_targets: {get_input: gtp_net_route_targets}
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN 
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: {get_input: gtp_net_cidr}
+          gateway_ip: {get_input: gtp_net_gateway_ip}
+          start_ip: {get_input: gtp_net_start_ip}
+          end_ip: {get_input: gtp_net_end_ip}
+    
+    sctp_a_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+        UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+        version: 1.0
+        name: SCTPANet
+        description: SCTP A External Network
+        type: VL
+        category: VL
+        resourceVendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+          route_targets: 13979:105717
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.0/27 # HEAT ENV
+          gateway_ip: 107.243.37.1 # HEAT ENV
+          start_ip: 107.243.37.3 # HEAT ENV
+          end_ip: 107.243.37.30 # HEAT ENV
+      
+    sctp_b_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+        UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+        version: 1.0
+        name: SCTPBNet
+        description: SCTP B External Network
+        type: VL
+        category: VL
+        resourceVendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+          route_targets: 13979:105719
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.32/24 # HEAT ENV
+          gateway_ip: 107.243.37.33 # HEAT ENV
+          start_ip: 107.243.37.35 # HEAT ENV
+          end_ip: 107.243.37.62 # HEAT ENV
+      
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testErrorWhenInvalidResourceVersion1/service_vmme_template_1.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testErrorWhenInvalidResourceVersion1/service_vmme_template_1.yml
new file mode 100644
index 0000000..fbb1e62
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testErrorWhenInvalidResourceVersion1/service_vmme_template_1.yml
@@ -0,0 +1,98 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  type: Service
+  name: vMME_Service
+  description: vMME_Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+    
+topology_template:
+
+  inputs:    
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity 
+      
+  node_templates:
+
+    mme: # vMME VNF
+      type: org.openecomp.resource.vf.vmme
+
+      metadata:
+          invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version: 0.0
+          name: vMME_VF
+          description: vMME_VF
+          type: VF
+          category: Application L4+
+          subcategory: Firewall
+          resourceVendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testErrorWhenInvalidResourceVersion1/vf_vmme_template_1.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testErrorWhenInvalidResourceVersion1/vf_vmme_template_1.yml
new file mode 100644
index 0000000..6aee48b
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testErrorWhenInvalidResourceVersion1/vf_vmme_template_1.yml
@@ -0,0 +1,1299 @@
+--- 
+description: "VF Template for pseodo vMME"
+imports: 
+  NovaServerGlobalTypes: 
+    file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata: 
+  category: "Application L4+"
+  description: vMME_VF
+  invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+  name: vMME_VF
+  subcategory: Firewall
+  type: VF
+  UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+  resourceVendor: Ericsson
+topology_template: 
+  groups: 
+    vfmoduleVmmeModule-1: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      metadata: 
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelName: "vMME::module-1"
+        vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+      properties: 
+        artifacts: 
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+        availability_zone_count: 2
+        contrail_service_instance: true
+        vf_module_description: "vMME expansion VF Module"
+        vf_module_label: "vMME Expansion VF Module"
+        vf_module_type: Expansion
+        volume_group: false
+      type: org.openecomp.groups.VfModule
+    vmme_small: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      properties: 
+        description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+        heat_file: ../Artifacts/vmme_small.yml
+      type: org.openecomp.groups.heat.HeatStack
+    vmme_small_create_fsb: 
+      members: 
+        - FSB1_volume
+        - FSB2_volume
+      properties: 
+        description: "server template for vMME"
+        heat_file: ../Artifacts/vmme_small_create_fsb.yml
+      type: org.openecomp.groups.heat.HeatStack
+  inputs: 
+    Internal1_net_cidr: 
+      default: 169.253.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_gateway_ip: 
+      default: "169.253.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_cidr: 
+      default: 169.255.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_gateway_ip: 
+      default: "169.255.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    fsb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb1_vfc_image_name: 
+      default: MME_FSB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    fsb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    fsb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb2_vfc_flavor: 
+      defualt: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb2_vfc_image_name: 
+      default: MME_FSB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB002
+      description: "VFC instance name"
+      type: string
+    fsb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb1_vfc_image_name: 
+      default: MME_GPB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb2_vfc_image_name: 
+      default: MME_GPB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb1_vfc_image_name: 
+      default: MME_NCB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb2_vfc_image_name: 
+      default: MME_NCB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    network_deployment_node: 
+      description: "The target LCP node for deployment of this Network instance"
+      type: string
+    oam_net_id: 
+      default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+      description: "uuid of oam network"
+      hidden: false
+      immutable: false
+      type: string
+    vlc1_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc1_vfc_image_name: 
+      default: MME_VLC1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    vlc2_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc2_vfc_image_name: 
+      default: MME_VLC2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+  node_templates: 
+    FSB1: 
+      capabilities: 
+        monitoring_capabilty: 
+          properties: 
+            name: high_cpu
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    FSB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    Internal1_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal1_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal1_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal1_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    Internal2_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal2_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal2_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal2_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    NCB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    NCB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc1_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc2_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    fsb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    oam_net: 
+      metadata: 
+        category: VL
+        description: "Mobility OAM Network"
+        invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+        name: "Mobility OAM Network"
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+        resourceVendor: AT&T
+        version: 2.0
+      properties: 
+        flow_pattern: E-LAN
+        layer_protocol: IP
+        network_id: 
+          get_input: oam_net_id
+        network_technology: Contrail
+        network_type: vIPR_ATM_OAM
+        test_access: none
+      type: org.openecomp.resource.vl.OAM
+    vlc1_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+  policies: 
+    - 
+      mme_autoscale_policy: 
+        properties: 
+          factor: cpu_load
+          increment: 1
+          max_instances: 4
+          min_instances: 1
+          threshold: 80%
+        target: 
+          - vfmoduleVmmeModule-1
+        type: org.openecomp.policy.Autoscaling
+  substitution_mapping: 
+    requirements: 
+      - 
+        vlc1_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc2_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_a.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_b.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+    type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testErrorWhenInvalidResourceVersion2/service_vmme_template_1.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testErrorWhenInvalidResourceVersion2/service_vmme_template_1.yml
new file mode 100644
index 0000000..94b6c9b
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testErrorWhenInvalidResourceVersion2/service_vmme_template_1.yml
@@ -0,0 +1,98 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  type: Service
+  name: vMME_Service
+  description: vMME_Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+    
+topology_template:
+
+  inputs:    
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity 
+      
+  node_templates:
+
+    mme: # vMME VNF
+      type: org.openecomp.resource.vf.vmme
+
+      metadata:
+          invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version: 1
+          name: vMME_VF
+          description: vMME_VF
+          type: VF
+          category: Application L4+
+          subcategory: Firewall
+          resourceVendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testErrorWhenInvalidResourceVersion2/vf_vmme_template_1.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testErrorWhenInvalidResourceVersion2/vf_vmme_template_1.yml
new file mode 100644
index 0000000..6aee48b
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testErrorWhenInvalidResourceVersion2/vf_vmme_template_1.yml
@@ -0,0 +1,1299 @@
+--- 
+description: "VF Template for pseodo vMME"
+imports: 
+  NovaServerGlobalTypes: 
+    file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata: 
+  category: "Application L4+"
+  description: vMME_VF
+  invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+  name: vMME_VF
+  subcategory: Firewall
+  type: VF
+  UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+  resourceVendor: Ericsson
+topology_template: 
+  groups: 
+    vfmoduleVmmeModule-1: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      metadata: 
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelName: "vMME::module-1"
+        vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+      properties: 
+        artifacts: 
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+        availability_zone_count: 2
+        contrail_service_instance: true
+        vf_module_description: "vMME expansion VF Module"
+        vf_module_label: "vMME Expansion VF Module"
+        vf_module_type: Expansion
+        volume_group: false
+      type: org.openecomp.groups.VfModule
+    vmme_small: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      properties: 
+        description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+        heat_file: ../Artifacts/vmme_small.yml
+      type: org.openecomp.groups.heat.HeatStack
+    vmme_small_create_fsb: 
+      members: 
+        - FSB1_volume
+        - FSB2_volume
+      properties: 
+        description: "server template for vMME"
+        heat_file: ../Artifacts/vmme_small_create_fsb.yml
+      type: org.openecomp.groups.heat.HeatStack
+  inputs: 
+    Internal1_net_cidr: 
+      default: 169.253.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_gateway_ip: 
+      default: "169.253.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_cidr: 
+      default: 169.255.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_gateway_ip: 
+      default: "169.255.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    fsb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb1_vfc_image_name: 
+      default: MME_FSB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    fsb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    fsb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb2_vfc_flavor: 
+      defualt: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb2_vfc_image_name: 
+      default: MME_FSB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB002
+      description: "VFC instance name"
+      type: string
+    fsb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb1_vfc_image_name: 
+      default: MME_GPB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb2_vfc_image_name: 
+      default: MME_GPB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb1_vfc_image_name: 
+      default: MME_NCB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb2_vfc_image_name: 
+      default: MME_NCB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    network_deployment_node: 
+      description: "The target LCP node for deployment of this Network instance"
+      type: string
+    oam_net_id: 
+      default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+      description: "uuid of oam network"
+      hidden: false
+      immutable: false
+      type: string
+    vlc1_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc1_vfc_image_name: 
+      default: MME_VLC1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    vlc2_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc2_vfc_image_name: 
+      default: MME_VLC2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+  node_templates: 
+    FSB1: 
+      capabilities: 
+        monitoring_capabilty: 
+          properties: 
+            name: high_cpu
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    FSB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    Internal1_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal1_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal1_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal1_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    Internal2_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal2_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal2_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal2_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    NCB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    NCB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc1_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc2_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    fsb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    oam_net: 
+      metadata: 
+        category: VL
+        description: "Mobility OAM Network"
+        invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+        name: "Mobility OAM Network"
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+        resourceVendor: AT&T
+        version: 2.0
+      properties: 
+        flow_pattern: E-LAN
+        layer_protocol: IP
+        network_id: 
+          get_input: oam_net_id
+        network_technology: Contrail
+        network_type: vIPR_ATM_OAM
+        test_access: none
+      type: org.openecomp.resource.vl.OAM
+    vlc1_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+  policies: 
+    - 
+      mme_autoscale_policy: 
+        properties: 
+          factor: cpu_load
+          increment: 1
+          max_instances: 4
+          min_instances: 1
+          threshold: 80%
+        target: 
+          - vfmoduleVmmeModule-1
+        type: org.openecomp.policy.Autoscaling
+  substitution_mapping: 
+    requirements: 
+      - 
+        vlc1_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc2_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_a.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_b.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+    type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testErrorWhenInvalidUuId/service_vmme_template_1.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testErrorWhenInvalidUuId/service_vmme_template_1.yml
new file mode 100644
index 0000000..5edb3bf
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testErrorWhenInvalidUuId/service_vmme_template_1.yml
@@ -0,0 +1,194 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  invariantUUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  UUID: 7787da18-123
+  type: Service
+  name: vMME_Service
+  description: vMME_Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+    
+topology_template:
+
+  inputs:    
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity 
+      
+  node_templates:
+
+    mme: # vMME VNF
+      type: org.openecomp.resource.vf.vmme
+
+      metadata:
+          invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version: 1.0
+          name: vMME_VF
+          description: vMME_VF
+          type: VF
+          category: Application L4+
+          subcategory: Firewall
+          resourceVendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+ 
+     
+  # Virtual Links (Networks)
+  
+    gtp_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+        UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+        version: 1.0
+        name: GTPNet
+        description: GTP External Network
+        type: VL
+        category: VL
+        resourceVendor: AT&T      
+      properties:
+        network_type: Tenant_Layer_3 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: {get_input: gtp_net_network_name}
+          route_targets: {get_input: gtp_net_route_targets}
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN 
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: {get_input: gtp_net_cidr}
+          gateway_ip: {get_input: gtp_net_gateway_ip}
+          start_ip: {get_input: gtp_net_start_ip}
+          end_ip: {get_input: gtp_net_end_ip}
+    
+    sctp_a_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+        UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+        version: 1.0
+        name: SCTPANet
+        description: SCTP A External Network
+        type: VL
+        category: VL
+        resourceVendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+          route_targets: 13979:105717
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.0/27 # HEAT ENV
+          gateway_ip: 107.243.37.1 # HEAT ENV
+          start_ip: 107.243.37.3 # HEAT ENV
+          end_ip: 107.243.37.30 # HEAT ENV
+      
+    sctp_b_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+        UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+        version: 1.0
+        name: SCTPBNet
+        description: SCTP B External Network
+        type: VL
+        category: VL
+        resourceVendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+          route_targets: 13979:105719
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.32/24 # HEAT ENV
+          gateway_ip: 107.243.37.33 # HEAT ENV
+          start_ip: 107.243.37.35 # HEAT ENV
+          end_ip: 107.243.37.62 # HEAT ENV
+      
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testErrorWhenNoResourceVersion/service_vmme_template_1.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testErrorWhenNoResourceVersion/service_vmme_template_1.yml
new file mode 100644
index 0000000..d50b285
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testErrorWhenNoResourceVersion/service_vmme_template_1.yml
@@ -0,0 +1,98 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  type: Service
+  name: vMME_Service
+  description: vMME_Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+    
+topology_template:
+
+  inputs:    
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity 
+      
+  node_templates:
+
+    mme: # vMME VNF
+      type: org.openecomp.resource.vf.vmme
+
+      metadata:
+          invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version:
+          name: vMME_VF
+          description: vMME_VF
+          type: VF
+          category: Application L4+
+          subcategory: Firewall
+          resourceVendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testErrorWhenNoResourceVersion/vf_vmme_template_1.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testErrorWhenNoResourceVersion/vf_vmme_template_1.yml
new file mode 100644
index 0000000..6aee48b
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testErrorWhenNoResourceVersion/vf_vmme_template_1.yml
@@ -0,0 +1,1299 @@
+--- 
+description: "VF Template for pseodo vMME"
+imports: 
+  NovaServerGlobalTypes: 
+    file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata: 
+  category: "Application L4+"
+  description: vMME_VF
+  invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+  name: vMME_VF
+  subcategory: Firewall
+  type: VF
+  UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+  resourceVendor: Ericsson
+topology_template: 
+  groups: 
+    vfmoduleVmmeModule-1: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      metadata: 
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelName: "vMME::module-1"
+        vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+      properties: 
+        artifacts: 
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+        availability_zone_count: 2
+        contrail_service_instance: true
+        vf_module_description: "vMME expansion VF Module"
+        vf_module_label: "vMME Expansion VF Module"
+        vf_module_type: Expansion
+        volume_group: false
+      type: org.openecomp.groups.VfModule
+    vmme_small: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      properties: 
+        description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+        heat_file: ../Artifacts/vmme_small.yml
+      type: org.openecomp.groups.heat.HeatStack
+    vmme_small_create_fsb: 
+      members: 
+        - FSB1_volume
+        - FSB2_volume
+      properties: 
+        description: "server template for vMME"
+        heat_file: ../Artifacts/vmme_small_create_fsb.yml
+      type: org.openecomp.groups.heat.HeatStack
+  inputs: 
+    Internal1_net_cidr: 
+      default: 169.253.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_gateway_ip: 
+      default: "169.253.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_cidr: 
+      default: 169.255.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_gateway_ip: 
+      default: "169.255.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    fsb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb1_vfc_image_name: 
+      default: MME_FSB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    fsb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    fsb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb2_vfc_flavor: 
+      defualt: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb2_vfc_image_name: 
+      default: MME_FSB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB002
+      description: "VFC instance name"
+      type: string
+    fsb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb1_vfc_image_name: 
+      default: MME_GPB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb2_vfc_image_name: 
+      default: MME_GPB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb1_vfc_image_name: 
+      default: MME_NCB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb2_vfc_image_name: 
+      default: MME_NCB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    network_deployment_node: 
+      description: "The target LCP node for deployment of this Network instance"
+      type: string
+    oam_net_id: 
+      default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+      description: "uuid of oam network"
+      hidden: false
+      immutable: false
+      type: string
+    vlc1_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc1_vfc_image_name: 
+      default: MME_VLC1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    vlc2_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc2_vfc_image_name: 
+      default: MME_VLC2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+  node_templates: 
+    FSB1: 
+      capabilities: 
+        monitoring_capabilty: 
+          properties: 
+            name: high_cpu
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    FSB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    Internal1_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal1_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal1_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal1_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    Internal2_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal2_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal2_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal2_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    NCB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    NCB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc1_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc2_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    fsb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    oam_net: 
+      metadata: 
+        category: VL
+        description: "Mobility OAM Network"
+        invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+        name: "Mobility OAM Network"
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+        resourceVendor: AT&T
+        version: 2.0
+      properties: 
+        flow_pattern: E-LAN
+        layer_protocol: IP
+        network_id: 
+          get_input: oam_net_id
+        network_technology: Contrail
+        network_type: vIPR_ATM_OAM
+        test_access: none
+      type: org.openecomp.resource.vl.OAM
+    vlc1_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+  policies: 
+    - 
+      mme_autoscale_policy: 
+        properties: 
+          factor: cpu_load
+          increment: 1
+          max_instances: 4
+          min_instances: 1
+          threshold: 80%
+        target: 
+          - vfmoduleVmmeModule-1
+        type: org.openecomp.policy.Autoscaling
+  substitution_mapping: 
+    requirements: 
+      - 
+        vlc1_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc2_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_a.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_b.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+    type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testSameVLdifferentVersion/resource-AllottedResource-template.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testSameVLdifferentVersion/resource-AllottedResource-template.yml
new file mode 100644
index 0000000..c80e701
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testSameVLdifferentVersion/resource-AllottedResource-template.yml
@@ -0,0 +1,78 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+  UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+  name: Allotted Resource
+  description: This is a VF - Allotted resource
+  type: VF
+  category: Allotted Resource
+  subcategory: Allotted Resource
+  resourceVendor: '1'
+  resourceVendorRelease: '1'
+imports:
+- Alloted resource:
+    file: resource-AllotedResource-template.yml
+topology_template:
+  node_templates:
+    Alloted resource 1:
+      type: org.openecomp.resource.vfc.AllottedResource
+      metadata:
+        invariantUUID: 666b409b-5614-41a8-945e-a53d68f5d439
+        UUID: df0c1c4d-1756-4b2a-998e-73f9f4d77afa
+        version: '1.0'
+        name: Alloted resource
+        description: This is a VFC- Allotted resource
+        type: VFC
+        category: Allotted Resource
+        subcategory: Allotted Resource
+      properties:
+        role: name
+        ecomp_naming:
+          naming_policy: test
+          ecomp_generated_naming: false
+          supplemental_data:
+            Key1: key1
+        providing_service_invariant_uuid: 34a4d119-06bc-4ab4-8c5a-a498d638297c
+        min_instances: 1
+        max_instances: 1
+        providing_service_uuid: e14a509f-b611-4b30-b38c-bc7f11b679aa
+        providing_service_name: vVIGaaS
+        ecomp_homing:
+          instance_node_target: Test
+          homing_policy: Test
+          supplemental_data:
+            Key: key
+          ecomp_selected_instance_node_target: false
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.AllottedResource
+    capabilities:
+      Alloted resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Alloted resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Alloted resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testSameVLdifferentVersion/resource-Extvl-template.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testSameVLdifferentVersion/resource-Extvl-template.yml
new file mode 100644
index 0000000..aa32d4a
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testSameVLdifferentVersion/resource-Extvl-template.yml
@@ -0,0 +1,61 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: f148dbb0-8c53-466d-9687-791c0e9d40cf
+  UUID: 3f8fa4d2-2b86-4b36-bbc8-ffb8f9f57468
+  name: ExtVL1
+  description: OPENECOMP generic virtual link (network) base type for all other service-level and global networks
+  type: VL
+  category: Generic
+  subcategory: Network Elements
+  resourceVendor: OPENECOMP (Tosca)
+  resourceVendorRelease: 1.0.0.wd03
+node_types:
+  org.openecomp.resource.vl.extVL:
+    derived_from: tosca.nodes.Root
+    description: OPENECOMP generic virtual link (network) base type for all other service-level and global networks
+    properties:
+      physical_network:
+        type: org.openecomp.datatypes.network.PhysicalNetwork
+      network_role:
+        type: string
+        description: |
+          Unique label that defines the role that this network performs.   example: vce oam network, vnat sr-iov1 network
+      network_assignments:
+        type: org.openecomp.datatypes.network.NetworkAssignments
+      network_flows:
+        type: org.openecomp.datatypes.network.NetworkFlows
+      vl_artifacts:
+        type: map
+        description: List of artifacts associated with the VL
+        entry_schema:
+          type: org.openecomp.datatypes.Artifact
+      network_scope:
+        type: string
+        description: |
+          Uniquely identifies the network scope. Valid values for the network scope   includes: VF - VF-level network. Intra-VF network which connects the VFCs (VMs) inside the VF. SERVICE - Service-level network. Intra-Service network which connects  the VFs within the service GLOBAL - Global network which can be shared by multiple services
+      network_ecomp_naming:
+        type: org.openecomp.datatypes.EcompNaming
+      network_type:
+        type: string
+        description: OPENECOMP supported network types.
+      network_technology:
+        type: string
+        description: OPENECOMP supported network technology
+      network_homing:
+        type: org.openecomp.datatypes.EcompHoming
+    capabilities:
+      virtual_linkable:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 1
+        - UNBOUNDED
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testSameVLdifferentVersion/resource-Extvl-template_1.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testSameVLdifferentVersion/resource-Extvl-template_1.yml
new file mode 100644
index 0000000..e474f9a
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testSameVLdifferentVersion/resource-Extvl-template_1.yml
@@ -0,0 +1,61 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: f148dbb0-8c53-466d-9687-791c0e9d40cf
+  UUID: 3f8fa4d2-2b86-4b36-bbc8-ffb8f9f57433
+  name: ExtVL2
+  description: OPENECOMP generic virtual link (network) base type for all other service-level and global networks
+  type: VL
+  category: Generic
+  subcategory: Network Elements
+  resourceVendor: OPENECOMP (Tosca)
+  resourceVendorRelease: 1.0.0.wd03
+node_types:
+  org.openecomp.resource.vl.extVL:
+    derived_from: tosca.nodes.Root
+    description: OPENECOMP generic virtual link (network) base type for all other service-level and global networks
+    properties:
+      physical_network:
+        type: org.openecomp.datatypes.network.PhysicalNetwork
+      network_role:
+        type: string
+        description: |
+          Unique label that defines the role that this network performs.   example: vce oam network, vnat sr-iov1 network
+      network_assignments:
+        type: org.openecomp.datatypes.network.NetworkAssignments
+      network_flows:
+        type: org.openecomp.datatypes.network.NetworkFlows
+      vl_artifacts:
+        type: map
+        description: List of artifacts associated with the VL
+        entry_schema:
+          type: org.openecomp.datatypes.Artifact
+      network_scope:
+        type: string
+        description: |
+          Uniquely identifies the network scope. Valid values for the network scope   includes: VF - VF-level network. Intra-VF network which connects the VFCs (VMs) inside the VF. SERVICE - Service-level network. Intra-Service network which connects  the VFs within the service GLOBAL - Global network which can be shared by multiple services
+      network_ecomp_naming:
+        type: org.openecomp.datatypes.EcompNaming
+      network_type:
+        type: string
+        description: OPENECOMP supported network types.
+      network_technology:
+        type: string
+        description: OPENECOMP supported network technology
+      network_homing:
+        type: org.openecomp.datatypes.EcompHoming
+    capabilities:
+      virtual_linkable:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 1
+        - UNBOUNDED
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testSameVLdifferentVersion/service_vmme_template_1.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testSameVLdifferentVersion/service_vmme_template_1.yml
new file mode 100644
index 0000000..c2b2875
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testSameVLdifferentVersion/service_vmme_template_1.yml
@@ -0,0 +1,139 @@
+--- 
+description: "Service Template for deploing MME Service"
+imports: 
+  - 
+    vmmeToscaTemplate: 
+      file: vf_vmme_template_1.yml
+  - 
+    ExtVL: 
+      file: resource-Extvl-template.yml
+  - 
+    ? "Allotted Resource"
+    : 
+      file: resource-AllottedResource-template.yml
+metadata: 
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  category: Mobility
+  description: vMME_Service
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  name: vMME_Service
+  serviceEcompNaming: false
+  serviceHoming: false
+  type: Service
+topology_template: 
+  groups: 
+    external_networks: 
+      members: 
+        - sctp_a_net
+        - sctp_b_net
+        - gtp_net
+      properties: 
+        availability_zone_count: 1
+        contrail_service_instance: true
+      type: org.openecomp.groups.externalNetworks
+  inputs: 
+    gtp_net_cidr: 
+      default: 107.243.37.64/27
+      description: "The GTP network cidr"
+      type: string
+    gtp_net_end_ip: 
+      default: "107.243.37.94"
+      description: "The GTP network end ip"
+      type: string
+    gtp_net_gateway_ip: 
+      default: "107.243.37.65"
+      description: "The GTP network gateway"
+      type: string
+    gtp_net_network_name: 
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1
+      description: "The GTP network route targets"
+      type: string
+    gtp_net_route_targets: 
+      default: "13979:105715"
+      description: "The GTP network route targets"
+      type: string
+    gtp_net_start_ip: 
+      default: "107.243.37.67"
+      description: "The GTP network start ip"
+      type: string
+    mme_vf_deployment_node: 
+      description: "The target LCP node for deployment of this VF instance"
+      type: string
+    mme_vf_instance_name: 
+      description: "VF instance name"
+      type: string
+  node_templates: 
+    ? "Allotted Resource 2"
+    : 
+      metadata: 
+        UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+        category: "Allotted Resource"
+        description: "This is a VF - Allotted resource"
+        invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+        name: "Allotted Resource"
+        subcategory: "Allotted Resource"
+        type: VF
+        version: "1.0"
+      type: org.openecomp.resource.vf.AllottedResource
+    ? "ExtVL 1"
+    : 
+      metadata: 
+        UUID: 3f8fa4d2-2b86-4b36-bbc8-ffb8f9f57468
+        category: Generic
+        description: "OPENECOMP generic virtual link (network) base type for all other service-level and global networks"
+        invariantUUID: f148dbb0-8c53-466d-9687-791c0e9d40cf
+        name: ExtVL
+        subcategory: "Network Elements"
+        type: VL
+        version: "2.0"
+      type: org.openecomp.resource.vl.extVL
+    ? "ExtVL 2"
+    : 
+      metadata: 
+        UUID: 3f8fa4d2-2b86-4b36-bbc8-ffb8f9f57433
+        category: Generic
+        description: "OPENECOMP generic virtual link (network) base type for all other service-level and global networks"
+        invariantUUID: f148dbb0-8c53-466d-9687-791c0e9d40cf
+        name: ExtVL
+        subcategory: "Network Elements"
+        type: VL
+        version: "4.0"
+      type: org.openecomp.resource.vl.extVL
+
+    mme: 
+      metadata: 
+        UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        category: "Application L4+"
+        description: vMME_VF
+        invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+        name: vMME_VF
+        resourceVendor: Ericsson
+        subcategory: Firewall
+        type: VF
+        version: 1.0
+      properties: 
+        vf_deployment_node: 
+          get_input: vf_deployment_node
+        vf_ecomp_name: false
+        vf_homing: false
+        vf_instance_name: 
+          get_input: vf_instance_name
+      requirements: 
+        - 
+          vlc1_sctp_a.link: 
+            capability: tosca.capabilities.network.Bindable
+            node: sctp_a_net
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          vlc1_sctp_b.link: 
+            capability: tosca.capabilities.network.Bindable
+            node: sctp_b_net
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          vlc1_gtp_net.link: 
+            capability: tosca.capabilities.network.Bindable
+            node: gtp_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vf.vmme
+
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testSameVLdifferentVersion/vf_vmme_template_1.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testSameVLdifferentVersion/vf_vmme_template_1.yml
new file mode 100644
index 0000000..6aee48b
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testSameVLdifferentVersion/vf_vmme_template_1.yml
@@ -0,0 +1,1299 @@
+--- 
+description: "VF Template for pseodo vMME"
+imports: 
+  NovaServerGlobalTypes: 
+    file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata: 
+  category: "Application L4+"
+  description: vMME_VF
+  invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+  name: vMME_VF
+  subcategory: Firewall
+  type: VF
+  UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+  resourceVendor: Ericsson
+topology_template: 
+  groups: 
+    vfmoduleVmmeModule-1: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      metadata: 
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelName: "vMME::module-1"
+        vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+      properties: 
+        artifacts: 
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+        availability_zone_count: 2
+        contrail_service_instance: true
+        vf_module_description: "vMME expansion VF Module"
+        vf_module_label: "vMME Expansion VF Module"
+        vf_module_type: Expansion
+        volume_group: false
+      type: org.openecomp.groups.VfModule
+    vmme_small: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      properties: 
+        description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+        heat_file: ../Artifacts/vmme_small.yml
+      type: org.openecomp.groups.heat.HeatStack
+    vmme_small_create_fsb: 
+      members: 
+        - FSB1_volume
+        - FSB2_volume
+      properties: 
+        description: "server template for vMME"
+        heat_file: ../Artifacts/vmme_small_create_fsb.yml
+      type: org.openecomp.groups.heat.HeatStack
+  inputs: 
+    Internal1_net_cidr: 
+      default: 169.253.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_gateway_ip: 
+      default: "169.253.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_cidr: 
+      default: 169.255.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_gateway_ip: 
+      default: "169.255.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    fsb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb1_vfc_image_name: 
+      default: MME_FSB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    fsb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    fsb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb2_vfc_flavor: 
+      defualt: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb2_vfc_image_name: 
+      default: MME_FSB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB002
+      description: "VFC instance name"
+      type: string
+    fsb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb1_vfc_image_name: 
+      default: MME_GPB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb2_vfc_image_name: 
+      default: MME_GPB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb1_vfc_image_name: 
+      default: MME_NCB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb2_vfc_image_name: 
+      default: MME_NCB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    network_deployment_node: 
+      description: "The target LCP node for deployment of this Network instance"
+      type: string
+    oam_net_id: 
+      default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+      description: "uuid of oam network"
+      hidden: false
+      immutable: false
+      type: string
+    vlc1_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc1_vfc_image_name: 
+      default: MME_VLC1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    vlc2_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc2_vfc_image_name: 
+      default: MME_VLC2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+  node_templates: 
+    FSB1: 
+      capabilities: 
+        monitoring_capabilty: 
+          properties: 
+            name: high_cpu
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    FSB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    Internal1_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal1_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal1_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal1_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    Internal2_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal2_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal2_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal2_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    NCB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    NCB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc1_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc2_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    fsb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    oam_net: 
+      metadata: 
+        category: VL
+        description: "Mobility OAM Network"
+        invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+        name: "Mobility OAM Network"
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+        resourceVendor: AT&T
+        version: 2.0
+      properties: 
+        flow_pattern: E-LAN
+        layer_protocol: IP
+        network_id: 
+          get_input: oam_net_id
+        network_technology: Contrail
+        network_type: vIPR_ATM_OAM
+        test_access: none
+      type: org.openecomp.resource.vl.OAM
+    vlc1_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+  policies: 
+    - 
+      mme_autoscale_policy: 
+        properties: 
+          factor: cpu_load
+          increment: 1
+          max_instances: 4
+          min_instances: 1
+          threshold: 80%
+        target: 
+          - vfmoduleVmmeModule-1
+        type: org.openecomp.policy.Autoscaling
+  substitution_mapping: 
+    requirements: 
+      - 
+        vlc1_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc2_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_a.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_b.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+    type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testWidgetinServiceTosca/ServiceMock-template.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testWidgetinServiceTosca/ServiceMock-template.yml
new file mode 100644
index 0000000..84ba6c9
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testWidgetinServiceTosca/ServiceMock-template.yml
@@ -0,0 +1,74 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: c2749b42-28db-45e0-ab55-b05d0118d91d
+  UUID: b8ff69ca-786d-479e-9f9c-217a90ee0ebc
+  name: service_mock
+  description: aaa
+  type: Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+imports:
+- Network:
+    file: NeutronNet-template.yml
+- vadtran_Demo:
+    file: VadtranDemo-template.yml
+- Port:
+    file: ContrailPort-template.yml
+topology_template:
+  node_templates:
+    Port 1:
+      type: org.openecomp.resource.cp.nodes.heat.network.contrail.Port
+      metadata:
+        invariantUUID: fc94daa0-a1a9-405e-a84c-b15987f92357
+        UUID: 4dd2144f-72d4-47de-b361-8ed51c33c4a8
+        resourceCustomizationUUID: 6402d92d-0050-46a9-8202-623a46680ba7
+        version: '1.0'
+        name: ContrailPort
+        description: Represents a logical entity that associates between Compute and Network normative types for contrail.
+        type: CP
+        category: Generic
+        subcategory: Network Elements
+
+    vadtran_Demo 1:
+      type: org.openecomp.resource.vf.VadtranDemo
+      metadata:
+        invariantUUID: 886d689d-351d-485a-829c-d86ec2dde4c4
+        UUID: 3d6e1e60-14ac-4665-83de-6e2c729f0222
+        resourceCustomizationUUID: 8cc0b0f6-d0fd-4742-b054-8d1786e07ff8
+        version: '1.0'
+        name: vadtran_Demo
+        description: test
+        type: VF
+        category: Generic
+        subcategory: Database
+    
+  groups: 
+    vadtran_Demo..base_adtran_pmaa_heat_04..module-0:
+      type: org.openecomp.groups.VfModule
+      metadata:
+        vfModuleModelName: vadtran_Demo..base_adtran_pmaa_heat_04..module-0
+        vfModuleModelCustomizationUUID: fbf41c77-6b84-4e77-ae26-d86ec2dde4c4
+        vfModuleModelInvariantUUID: d84f61c9-160a-44b6-a008-6caadbb6c612
+        vfModuleModelUUID: fbf41c77-a7ee-4203-ad6c-eeb8a4ad7178
+        vfModuleModelVersion: '1'
+      properties:
+        vf_module_type: Base
+        vf_module_description:
+        volume_group: false  
+        vf_module_label: 
+        min_vf_module_instances: 2
+        max_vf_module_instances: 2
+        initial_count: 2
+
+  
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testWidgetinServiceTosca/VadtranDemo-template.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testWidgetinServiceTosca/VadtranDemo-template.yml
new file mode 100644
index 0000000..bddcf9f
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/testWidgetinServiceTosca/VadtranDemo-template.yml
@@ -0,0 +1,170 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: 886d689d-351d-485a-829c-d86ec2dde4c4
+  UUID: 3d6e1e60-14ac-4665-83de-6e2c729f0222
+  name: vadtran_Demo
+  description: test
+  type: VF
+  category: Generic
+  subcategory: Database
+  resourceVendor: Test
+  resourceVendorRelease: '1.0'
+imports:
+- NeutronPort:
+    file: Neutronport-template.yml
+- VadtranDemo.nodes.heat.vnf:
+    file: VadtrandemoNodesHeatVnf-template.yml
+topology_template:
+  inputs:
+    pmaa_dpu_net_id:
+      type: string
+      default: bd3be094-ddf0-43b3-91e7-d424f09dd2b9
+      description: PMAA DPU network ID
+    pmaa_dpu_fixed_ip:
+      type: string
+      default: 10.0.2.50
+      description: PMAA fixed IP address for DPU network port
+    pmaa_flavor:
+      type: string
+      default: m1.medium
+      description: PMAA instance Flavor (RAM, DISK, vCPUs)
+    pmaa_image:
+      type: string
+      default: adtran_pmaa_ubuntu_multi
+      description: PMAA image for compute instance
+    pmaa_mgt_net_id:
+      type: string
+      default: 991cdd94-18ca-4bf8-a931-922a64500840
+      description: PMAA management network
+    vnf_id:
+      type: string
+      default: pmaa_vnf_id
+      description: PMAA unique ID
+    pmaa_availability_zone:
+      type: string
+      default: nova
+      description: PMAA availability zone ID to deploy the instance
+    vnf_name:
+      type: string
+      default: pmaa
+      description: PMAA vnf name
+    pmaa_dpu_cidr:
+      type: string
+      default: 10.0.2.0/24
+      description: PMAA DPU subnetwork CIDR address block
+    pmaa_dpu_subnet_id:
+      type: string
+      default: e848430b-e956-4b47-9cc8-f7a6ca2c790a
+      description: PMAA DPU subnetwork ID
+    pmaa_dpu_gateway:
+      type: string
+      default: 10.0.2.254
+      description: PMAA DPU subnetwork gateway IP address
+  node_templates:
+    pmaa_mgt_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      metadata:
+        invariantUUID: cba26d10-4613-4c82-9f9e-af95eaf959a3
+        UUID: 2606755b-d301-45c6-900e-ca676cc9f348
+        resourceCustomizationUUID: 6402d92d-0050-46a9-8202-f7a6ca2c790a
+        version: '1.0'
+        name: NeutronPort
+        description: Represents a logical entity that associates between Compute and Network normative types.
+        type: CP
+        category: Generic
+        subcategory: Network Elements
+      properties:
+        network:
+          get_input: pmaa_mgt_net_id
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: pmaa_server_0
+          relationship: tosca.relationships.network.BindsTo
+    pmaa_dpu_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      metadata:
+        invariantUUID: cba26d10-4613-4c82-9f9e-af95eaf959a3
+        UUID: 2606755b-d301-45c6-900e-ca676cc9f348
+        resourceCustomizationUUID: 6402d92d-4613-4c82-9f9e-f7a6ca2c790a
+        version: '1.0'
+        name: NeutronPort
+        description: Represents a logical entity that associates between Compute and Network normative types.
+        type: CP
+        category: Generic
+        subcategory: Network Elements
+      properties:
+        fixed_ips:
+        - ip_address:
+            get_input: pmaa_dpu_fixed_ip
+        network:
+          get_input: pmaa_dpu_net_id
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: pmaa_server_0
+          relationship: tosca.relationships.network.BindsTo
+    pmaa_server_0:
+      type: org.openecomp.resource.vfc.VadtranDemo.abstact.nodes.heat.vnf
+      metadata:
+        invariantUUID: 660310f4-8851-46d3-9cb7-9f1188b43aa7
+        UUID: 82150098-aead-4ae0-a3e0-d5273b4ab923
+        resourceCustomizationUUID: 6402d92d-8851-46d3-9cb7-f7a6ca2c790a
+        version: '1.0'
+        name: VadtranDemo.nodes.heat.vnf
+        description: Not reusable inner VFC
+        type: VFC
+        category: Generic
+        subcategory: Abstract
+      properties:
+        flavor:
+          get_input: pmaa_flavor
+        image:
+          get_input: pmaa_image
+        availability_zone:
+          get_input: pmaa_availability_zone
+        metadata:
+          pmaa.sb_nic:
+            address:
+              get_input: pmaa_dpu_fixed_ip
+            cidr:
+              get_input: pmaa_dpu_cidr
+            gateway:
+              get_input: pmaa_dpu_gateway
+        user_data_format:
+        name:
+          get_input: vnf_name
+  groups:
+    vadtran_Demo..base_adtran_pmaa_heat_04..module-0:
+      type: org.openecomp.groups.VfModule
+      metadata:
+        vfModuleModelName: vadtran_Demo..base_adtran_pmaa_heat_04..module-0
+        vfModuleModelInvariantUUID: d84f61c9-160a-44b6-a008-6caadbb6c612
+        vfModuleModelUUID: fbf41c77-a7ee-4203-ad6c-eeb8a4ad7178
+        vfModuleModelVersion: '1'
+      properties:
+        vf_module_type: Base
+        vf_module_description:
+        volume_group: false
+    base_adtran_pmaa_heat_04:
+      type: org.openecomp.groups.heat.HeatStack
+      members:
+      - pmaa_mgt_port
+      - pmaa_dpu_port
+      - pmaa_server_0
+      metadata:
+        invariantUUID: d2e21beb-b7e4-44cf-bf6c-f8c8802fe532
+        UUID: c9d6f49a-6785-4693-a921-d980e4d11aa4
+        version: '1'
+        name: base_adtran_pmaa_heat_04
+  
+  #_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/vf_vmme_template_InvalidVfModInvUuIdAttr.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/vf_vmme_template_InvalidVfModInvUuIdAttr.yml
new file mode 100644
index 0000000..7d3a420
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/vf_vmme_template_InvalidVfModInvUuIdAttr.yml
@@ -0,0 +1,1299 @@
+--- 
+description: "VF Template for pseodo vMME"
+imports: 
+  NovaServerGlobalTypes: 
+    file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata: 
+  category: "Application L4+"
+  description: vMME_VF
+  invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+  name: vMME_VF
+  subcategory: Firewall
+  type: VF
+  UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+  resourceVendor: Ericsson
+topology_template: 
+  groups: 
+    vfmoduleVmmeModule-1: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      metadata: 
+        vfModuleModelInvariantUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc3333
+        vfModuleModelName: "vMME::module-1"
+        vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+      properties: 
+        artifacts: 
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+        availability_zone_count: 2
+        contrail_service_instance: true
+        vf_module_description: "vMME expansion VF Module"
+        vf_module_label: "vMME Expansion VF Module"
+        vf_module_type: Expansion
+        volume_group: false
+      type: org.openecomp.groups.VfModule
+    vmme_small: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      properties: 
+        description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+        heat_file: ../Artifacts/vmme_small.yml
+      type: org.openecomp.groups.heat.HeatStack
+    vmme_small_create_fsb: 
+      members: 
+        - FSB1_volume
+        - FSB2_volume
+      properties: 
+        description: "server template for vMME"
+        heat_file: ../Artifacts/vmme_small_create_fsb.yml
+      type: org.openecomp.groups.heat.HeatStack
+  inputs: 
+    Internal1_net_cidr: 
+      default: 169.253.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_gateway_ip: 
+      default: "169.253.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_cidr: 
+      default: 169.255.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_gateway_ip: 
+      default: "169.255.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    fsb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb1_vfc_image_name: 
+      default: MME_FSB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    fsb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    fsb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb2_vfc_flavor: 
+      defualt: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb2_vfc_image_name: 
+      default: MME_FSB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB002
+      description: "VFC instance name"
+      type: string
+    fsb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb1_vfc_image_name: 
+      default: MME_GPB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb2_vfc_image_name: 
+      default: MME_GPB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb1_vfc_image_name: 
+      default: MME_NCB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb2_vfc_image_name: 
+      default: MME_NCB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    network_deployment_node: 
+      description: "The target LCP node for deployment of this Network instance"
+      type: string
+    oam_net_id: 
+      default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+      description: "uuid of oam network"
+      hidden: false
+      immutable: false
+      type: string
+    vlc1_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc1_vfc_image_name: 
+      default: MME_VLC1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    vlc2_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc2_vfc_image_name: 
+      default: MME_VLC2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+  node_templates: 
+    FSB1: 
+      capabilities: 
+        monitoring_capabilty: 
+          properties: 
+            name: high_cpu
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    FSB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    Internal1_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal1_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal1_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal1_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    Internal2_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal2_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal2_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal2_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    NCB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    NCB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc1_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc2_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    fsb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    oam_net: 
+      metadata: 
+        category: VL
+        description: "Mobility OAM Network"
+        invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+        name: "Mobility OAM Network"
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+        resourceVendor: AT&T
+        version: 2.0
+      properties: 
+        flow_pattern: E-LAN
+        layer_protocol: IP
+        network_id: 
+          get_input: oam_net_id
+        network_technology: Contrail
+        network_type: vIPR_ATM_OAM
+        test_access: none
+      type: org.openecomp.resource.vl.OAM
+    vlc1_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+  policies: 
+    - 
+      mme_autoscale_policy: 
+        properties: 
+          factor: cpu_load
+          increment: 1
+          max_instances: 4
+          min_instances: 1
+          threshold: 80%
+        target: 
+          - vfmoduleVmmeModule-1
+        type: org.openecomp.policy.Autoscaling
+  substitution_mapping: 
+    requirements: 
+      - 
+        vlc1_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc2_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_a.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_b.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+    type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/vf_vmme_template_InvalidVfModUuIdAttr.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/vf_vmme_template_InvalidVfModUuIdAttr.yml
new file mode 100644
index 0000000..a2d6504
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/vf_vmme_template_InvalidVfModUuIdAttr.yml
@@ -0,0 +1,1299 @@
+--- 
+description: "VF Template for pseodo vMME"
+imports: 
+  NovaServerGlobalTypes: 
+    file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata: 
+  category: "Application L4+"
+  description: vMME_VF
+  invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+  name: vMME_VF
+  subcategory: Firewall
+  type: VF
+  UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+  resourceVendor: Ericsson
+topology_template: 
+  groups: 
+    vfmoduleVmmeModule-1: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      metadata: 
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelName: "vMME::module-1"
+        vfModuleModelUUID: adf1a1-
+        vfModuleModelVersion: 1
+      properties: 
+        artifacts: 
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+        availability_zone_count: 2
+        contrail_service_instance: true
+        vf_module_description: "vMME expansion VF Module"
+        vf_module_label: "vMME Expansion VF Module"
+        vf_module_type: Expansion
+        volume_group: false
+      type: org.openecomp.groups.VfModule
+    vmme_small: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      properties: 
+        description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+        heat_file: ../Artifacts/vmme_small.yml
+      type: org.openecomp.groups.heat.HeatStack
+    vmme_small_create_fsb: 
+      members: 
+        - FSB1_volume
+        - FSB2_volume
+      properties: 
+        description: "server template for vMME"
+        heat_file: ../Artifacts/vmme_small_create_fsb.yml
+      type: org.openecomp.groups.heat.HeatStack
+  inputs: 
+    Internal1_net_cidr: 
+      default: 169.253.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_gateway_ip: 
+      default: "169.253.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_cidr: 
+      default: 169.255.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_gateway_ip: 
+      default: "169.255.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    fsb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb1_vfc_image_name: 
+      default: MME_FSB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    fsb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    fsb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb2_vfc_flavor: 
+      defualt: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb2_vfc_image_name: 
+      default: MME_FSB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB002
+      description: "VFC instance name"
+      type: string
+    fsb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb1_vfc_image_name: 
+      default: MME_GPB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb2_vfc_image_name: 
+      default: MME_GPB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb1_vfc_image_name: 
+      default: MME_NCB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb2_vfc_image_name: 
+      default: MME_NCB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    network_deployment_node: 
+      description: "The target LCP node for deployment of this Network instance"
+      type: string
+    oam_net_id: 
+      default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+      description: "uuid of oam network"
+      hidden: false
+      immutable: false
+      type: string
+    vlc1_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc1_vfc_image_name: 
+      default: MME_VLC1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    vlc2_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc2_vfc_image_name: 
+      default: MME_VLC2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+  node_templates: 
+    FSB1: 
+      capabilities: 
+        monitoring_capabilty: 
+          properties: 
+            name: high_cpu
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    FSB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    Internal1_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal1_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal1_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal1_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    Internal2_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal2_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal2_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal2_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    NCB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    NCB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc1_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc2_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    fsb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    oam_net: 
+      metadata: 
+        category: VL
+        description: "Mobility OAM Network"
+        invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+        name: "Mobility OAM Network"
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+        resourceVendor: AT&T
+        version: 2.0
+      properties: 
+        flow_pattern: E-LAN
+        layer_protocol: IP
+        network_id: 
+          get_input: oam_net_id
+        network_technology: Contrail
+        network_type: vIPR_ATM_OAM
+        test_access: none
+      type: org.openecomp.resource.vl.OAM
+    vlc1_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+  policies: 
+    - 
+      mme_autoscale_policy: 
+        properties: 
+          factor: cpu_load
+          increment: 1
+          max_instances: 4
+          min_instances: 1
+          threshold: 80%
+        target: 
+          - vfmoduleVmmeModule-1
+        type: org.openecomp.policy.Autoscaling
+  substitution_mapping: 
+    requirements: 
+      - 
+        vlc1_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc2_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_a.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_b.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+    type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/vf_vmme_template_ModInvUUID.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/vf_vmme_template_ModInvUUID.yml
new file mode 100644
index 0000000..0961302
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/vf_vmme_template_ModInvUUID.yml
@@ -0,0 +1,1299 @@
+--- 
+description: "VF Template for pseodo vMME"
+imports: 
+  NovaServerGlobalTypes: 
+    file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata: 
+  category: "Application L4+"
+  description: vMME_VF
+  invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+  name: vMME_VF
+  subcategory: Firewall
+  type: VF
+  UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+  resourceVendor: Ericsson
+topology_template: 
+  groups: 
+    vfmoduleVmmeModule-1: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      metadata: 
+        vfModuleModelInvariantUUID:
+        vfModuleModelName: "vMME::module-1"
+        vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+      properties: 
+        artifacts: 
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+        availability_zone_count: 2
+        contrail_service_instance: true
+        vf_module_description: "vMME expansion VF Module"
+        vf_module_label: "vMME Expansion VF Module"
+        vf_module_type: Expansion
+        volume_group: false
+      type: org.openecomp.groups.VfModule
+    vmme_small: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      properties: 
+        description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+        heat_file: ../Artifacts/vmme_small.yml
+      type: org.openecomp.groups.heat.HeatStack
+    vmme_small_create_fsb: 
+      members: 
+        - FSB1_volume
+        - FSB2_volume
+      properties: 
+        description: "server template for vMME"
+        heat_file: ../Artifacts/vmme_small_create_fsb.yml
+      type: org.openecomp.groups.heat.HeatStack
+  inputs: 
+    Internal1_net_cidr: 
+      default: 169.253.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_gateway_ip: 
+      default: "169.253.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_cidr: 
+      default: 169.255.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_gateway_ip: 
+      default: "169.255.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    fsb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb1_vfc_image_name: 
+      default: MME_FSB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    fsb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    fsb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb2_vfc_flavor: 
+      defualt: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb2_vfc_image_name: 
+      default: MME_FSB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB002
+      description: "VFC instance name"
+      type: string
+    fsb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb1_vfc_image_name: 
+      default: MME_GPB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb2_vfc_image_name: 
+      default: MME_GPB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb1_vfc_image_name: 
+      default: MME_NCB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb2_vfc_image_name: 
+      default: MME_NCB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    network_deployment_node: 
+      description: "The target LCP node for deployment of this Network instance"
+      type: string
+    oam_net_id: 
+      default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+      description: "uuid of oam network"
+      hidden: false
+      immutable: false
+      type: string
+    vlc1_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc1_vfc_image_name: 
+      default: MME_VLC1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    vlc2_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc2_vfc_image_name: 
+      default: MME_VLC2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+  node_templates: 
+    FSB1: 
+      capabilities: 
+        monitoring_capabilty: 
+          properties: 
+            name: high_cpu
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    FSB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    Internal1_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal1_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal1_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal1_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    Internal2_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal2_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal2_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal2_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    NCB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    NCB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc1_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc2_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    fsb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    oam_net: 
+      metadata: 
+        category: VL
+        description: "Mobility OAM Network"
+        invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+        name: "Mobility OAM Network"
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+        resourceVendor: AT&T
+        version: 2.0
+      properties: 
+        flow_pattern: E-LAN
+        layer_protocol: IP
+        network_id: 
+          get_input: oam_net_id
+        network_technology: Contrail
+        network_type: vIPR_ATM_OAM
+        test_access: none
+      type: org.openecomp.resource.vl.OAM
+    vlc1_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+  policies: 
+    - 
+      mme_autoscale_policy: 
+        properties: 
+          factor: cpu_load
+          increment: 1
+          max_instances: 4
+          min_instances: 1
+          threshold: 80%
+        target: 
+          - vfmoduleVmmeModule-1
+        type: org.openecomp.policy.Autoscaling
+  substitution_mapping: 
+    requirements: 
+      - 
+        vlc1_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc2_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_a.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_b.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+    type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/vf_vmme_template_ModelName.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/vf_vmme_template_ModelName.yml
new file mode 100644
index 0000000..2f5f426
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/vf_vmme_template_ModelName.yml
@@ -0,0 +1,1299 @@
+--- 
+description: "VF Template for pseodo vMME"
+imports: 
+  NovaServerGlobalTypes: 
+    file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata: 
+  category: "Application L4+"
+  description: vMME_VF
+  invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+  name: vMME_VF
+  subcategory: Firewall
+  type: VF
+  UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+  resourceVendor: Ericsson
+topology_template: 
+  groups: 
+    vfmoduleVmmeModule-1: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      metadata: 
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelName:
+        vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+      properties: 
+        artifacts: 
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+        availability_zone_count: 2
+        contrail_service_instance: true
+        vf_module_description: "vMME expansion VF Module"
+        vf_module_label: "vMME Expansion VF Module"
+        vf_module_type: Expansion
+        volume_group: false
+      type: org.openecomp.groups.VfModule
+    vmme_small: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      properties: 
+        description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+        heat_file: ../Artifacts/vmme_small.yml
+      type: org.openecomp.groups.heat.HeatStack
+    vmme_small_create_fsb: 
+      members: 
+        - FSB1_volume
+        - FSB2_volume
+      properties: 
+        description: "server template for vMME"
+        heat_file: ../Artifacts/vmme_small_create_fsb.yml
+      type: org.openecomp.groups.heat.HeatStack
+  inputs: 
+    Internal1_net_cidr: 
+      default: 169.253.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_gateway_ip: 
+      default: "169.253.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_cidr: 
+      default: 169.255.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_gateway_ip: 
+      default: "169.255.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    fsb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb1_vfc_image_name: 
+      default: MME_FSB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    fsb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    fsb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb2_vfc_flavor: 
+      defualt: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb2_vfc_image_name: 
+      default: MME_FSB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB002
+      description: "VFC instance name"
+      type: string
+    fsb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb1_vfc_image_name: 
+      default: MME_GPB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb2_vfc_image_name: 
+      default: MME_GPB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb1_vfc_image_name: 
+      default: MME_NCB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb2_vfc_image_name: 
+      default: MME_NCB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    network_deployment_node: 
+      description: "The target LCP node for deployment of this Network instance"
+      type: string
+    oam_net_id: 
+      default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+      description: "uuid of oam network"
+      hidden: false
+      immutable: false
+      type: string
+    vlc1_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc1_vfc_image_name: 
+      default: MME_VLC1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    vlc2_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc2_vfc_image_name: 
+      default: MME_VLC2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+  node_templates: 
+    FSB1: 
+      capabilities: 
+        monitoring_capabilty: 
+          properties: 
+            name: high_cpu
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    FSB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    Internal1_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal1_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal1_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal1_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    Internal2_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal2_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal2_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal2_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    NCB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    NCB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc1_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc2_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    fsb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    oam_net: 
+      metadata: 
+        category: VL
+        description: "Mobility OAM Network"
+        invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+        name: "Mobility OAM Network"
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+        resourceVendor: AT&T
+        version: 2.0
+      properties: 
+        flow_pattern: E-LAN
+        layer_protocol: IP
+        network_id: 
+          get_input: oam_net_id
+        network_technology: Contrail
+        network_type: vIPR_ATM_OAM
+        test_access: none
+      type: org.openecomp.resource.vl.OAM
+    vlc1_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+  policies: 
+    - 
+      mme_autoscale_policy: 
+        properties: 
+          factor: cpu_load
+          increment: 1
+          max_instances: 4
+          min_instances: 1
+          threshold: 80%
+        target: 
+          - vfmoduleVmmeModule-1
+        type: org.openecomp.policy.Autoscaling
+  substitution_mapping: 
+    requirements: 
+      - 
+        vlc1_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc2_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_a.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_b.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+    type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/vf_vmme_template_ModelUUID.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/vf_vmme_template_ModelUUID.yml
new file mode 100644
index 0000000..7dec66c
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/vf_vmme_template_ModelUUID.yml
@@ -0,0 +1,1299 @@
+--- 
+description: "VF Template for pseodo vMME"
+imports: 
+  NovaServerGlobalTypes: 
+    file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata: 
+  category: "Application L4+"
+  description: vMME_VF
+  invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+  name: vMME_VF
+  subcategory: Firewall
+  type: VF
+  UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+  resourceVendor: Ericsson
+topology_template: 
+  groups: 
+    vfmoduleVmmeModule-1: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      metadata: 
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelName: "vMME::module-1"
+        vfModuleModelUUID:
+        vfModuleModelVersion: 1
+      properties: 
+        artifacts: 
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+        availability_zone_count: 2
+        contrail_service_instance: true
+        vf_module_description: "vMME expansion VF Module"
+        vf_module_label: "vMME Expansion VF Module"
+        vf_module_type: Expansion
+        volume_group: false
+      type: org.openecomp.groups.VfModule
+    vmme_small: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      properties: 
+        description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+        heat_file: ../Artifacts/vmme_small.yml
+      type: org.openecomp.groups.heat.HeatStack
+    vmme_small_create_fsb: 
+      members: 
+        - FSB1_volume
+        - FSB2_volume
+      properties: 
+        description: "server template for vMME"
+        heat_file: ../Artifacts/vmme_small_create_fsb.yml
+      type: org.openecomp.groups.heat.HeatStack
+  inputs: 
+    Internal1_net_cidr: 
+      default: 169.253.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_gateway_ip: 
+      default: "169.253.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_cidr: 
+      default: 169.255.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_gateway_ip: 
+      default: "169.255.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    fsb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb1_vfc_image_name: 
+      default: MME_FSB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    fsb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    fsb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb2_vfc_flavor: 
+      defualt: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb2_vfc_image_name: 
+      default: MME_FSB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB002
+      description: "VFC instance name"
+      type: string
+    fsb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb1_vfc_image_name: 
+      default: MME_GPB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb2_vfc_image_name: 
+      default: MME_GPB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb1_vfc_image_name: 
+      default: MME_NCB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb2_vfc_image_name: 
+      default: MME_NCB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    network_deployment_node: 
+      description: "The target LCP node for deployment of this Network instance"
+      type: string
+    oam_net_id: 
+      default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+      description: "uuid of oam network"
+      hidden: false
+      immutable: false
+      type: string
+    vlc1_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc1_vfc_image_name: 
+      default: MME_VLC1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    vlc2_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc2_vfc_image_name: 
+      default: MME_VLC2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+  node_templates: 
+    FSB1: 
+      capabilities: 
+        monitoring_capabilty: 
+          properties: 
+            name: high_cpu
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    FSB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    Internal1_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal1_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal1_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal1_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    Internal2_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal2_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal2_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal2_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    NCB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    NCB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc1_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc2_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    fsb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    oam_net: 
+      metadata: 
+        category: VL
+        description: "Mobility OAM Network"
+        invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+        name: "Mobility OAM Network"
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+        resourceVendor: AT&T
+        version: 2.0
+      properties: 
+        flow_pattern: E-LAN
+        layer_protocol: IP
+        network_id: 
+          get_input: oam_net_id
+        network_technology: Contrail
+        network_type: vIPR_ATM_OAM
+        test_access: none
+      type: org.openecomp.resource.vl.OAM
+    vlc1_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+  policies: 
+    - 
+      mme_autoscale_policy: 
+        properties: 
+          factor: cpu_load
+          increment: 1
+          max_instances: 4
+          min_instances: 1
+          threshold: 80%
+        target: 
+          - vfmoduleVmmeModule-1
+        type: org.openecomp.policy.Autoscaling
+  substitution_mapping: 
+    requirements: 
+      - 
+        vlc1_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc2_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_a.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_b.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+    type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/vf_vmme_template_ModelVersion.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/vf_vmme_template_ModelVersion.yml
new file mode 100644
index 0000000..5ae33ed
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-core/src/test/resources/vf_vmme_template_ModelVersion.yml
@@ -0,0 +1,1299 @@
+--- 
+description: "VF Template for pseodo vMME"
+imports: 
+  NovaServerGlobalTypes: 
+    file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata: 
+  category: "Application L4+"
+  description: vMME_VF
+  invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+  name: vMME_VF
+  subcategory: Firewall
+  type: VF
+  UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+  resourceVendor: Ericsson
+topology_template: 
+  groups: 
+    vfmoduleVmmeModule-1: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      metadata: 
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelName: "vMME::module-1"
+        vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion:
+      properties: 
+        artifacts: 
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+        availability_zone_count: 2
+        contrail_service_instance: true
+        vf_module_description: "vMME expansion VF Module"
+        vf_module_label: "vMME Expansion VF Module"
+        vf_module_type: Expansion
+        volume_group: false
+      type: org.openecomp.groups.VfModule
+    vmme_small: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      properties: 
+        description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+        heat_file: ../Artifacts/vmme_small.yml
+      type: org.openecomp.groups.heat.HeatStack
+    vmme_small_create_fsb: 
+      members: 
+        - FSB1_volume
+        - FSB2_volume
+      properties: 
+        description: "server template for vMME"
+        heat_file: ../Artifacts/vmme_small_create_fsb.yml
+      type: org.openecomp.groups.heat.HeatStack
+  inputs: 
+    Internal1_net_cidr: 
+      default: 169.253.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_gateway_ip: 
+      default: "169.253.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_cidr: 
+      default: 169.255.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_gateway_ip: 
+      default: "169.255.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    fsb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb1_vfc_image_name: 
+      default: MME_FSB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    fsb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    fsb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb2_vfc_flavor: 
+      defualt: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb2_vfc_image_name: 
+      default: MME_FSB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB002
+      description: "VFC instance name"
+      type: string
+    fsb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb1_vfc_image_name: 
+      default: MME_GPB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb2_vfc_image_name: 
+      default: MME_GPB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb1_vfc_image_name: 
+      default: MME_NCB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb2_vfc_image_name: 
+      default: MME_NCB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    network_deployment_node: 
+      description: "The target LCP node for deployment of this Network instance"
+      type: string
+    oam_net_id: 
+      default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+      description: "uuid of oam network"
+      hidden: false
+      immutable: false
+      type: string
+    vlc1_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc1_vfc_image_name: 
+      default: MME_VLC1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    vlc2_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc2_vfc_image_name: 
+      default: MME_VLC2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+  node_templates: 
+    FSB1: 
+      capabilities: 
+        monitoring_capabilty: 
+          properties: 
+            name: high_cpu
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    FSB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    Internal1_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal1_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal1_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal1_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    Internal2_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal2_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal2_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal2_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    NCB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    NCB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc1_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc2_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    fsb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    oam_net: 
+      metadata: 
+        category: VL
+        description: "Mobility OAM Network"
+        invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+        name: "Mobility OAM Network"
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+        resourceVendor: AT&T
+        version: 2.0
+      properties: 
+        flow_pattern: E-LAN
+        layer_protocol: IP
+        network_id: 
+          get_input: oam_net_id
+        network_technology: Contrail
+        network_type: vIPR_ATM_OAM
+        test_access: none
+      type: org.openecomp.resource.vl.OAM
+    vlc1_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+  policies: 
+    - 
+      mme_autoscale_policy: 
+        properties: 
+          factor: cpu_load
+          increment: 1
+          max_instances: 4
+          min_instances: 1
+          threshold: 80%
+        target: 
+          - vfmoduleVmmeModule-1
+        type: org.openecomp.policy.Autoscaling
+  substitution_mapping: 
+    requirements: 
+      - 
+        vlc1_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc2_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_a.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_b.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+    type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/pom.xml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/pom.xml
new file mode 100644
index 0000000..4bdf5bc
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/pom.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>onap-sdc-artifact-generator-test</artifactId>
+
+    <parent>
+        <artifactId>onap-common-lib</artifactId>
+        <groupId>org.onap.sdc.common</groupId>
+        <version>1.2.0-SNAPSHOT</version>
+        <relativePath>../../</relativePath>
+    </parent>
+
+    <build>
+        <plugins>
+            <!-- any other plugins -->
+            <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-shade-plugin</artifactId>
+            <version>${mvn.shade.version}</version>
+            <executions>
+                <execution>
+                    <phase>package</phase>
+                    <goals>
+                        <goal>shade</goal>
+                    </goals>
+                    <configuration>
+                        <artifactSet>
+                            <excludes>
+                                <exclude>com.google.guava:*</exclude>
+                            </excludes>
+                        </artifactSet>
+                    </configuration>
+                </execution>
+            </executions>
+        </plugin>
+        </plugins>
+    </build>
+
+
+    <dependencies>
+        <dependency>
+            <groupId>org.testng</groupId>
+            <artifactId>testng</artifactId>
+            <version>6.8.8</version>
+        </dependency>
+    <dependency>
+        <groupId>junit</groupId>
+        <artifactId>junit</artifactId>
+        <version>4.11</version>
+    </dependency>
+    <dependency>
+        <groupId>org.onap.sdc.common</groupId>
+        <artifactId>onap-sdc-artifact-generator-api</artifactId>
+        <version>${project.version}</version>
+    </dependency>
+
+    <dependency>
+        <groupId>org.onap.sdc.common</groupId>
+        <artifactId>onap-sdc-artifact-generator-core</artifactId>
+        <version>${project.version}</version>
+    </dependency>
+    </dependencies>
+
+</project>
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/java/org/onap/sdc/generator/ArtifactGenerationServiceTest.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/java/org/onap/sdc/generator/ArtifactGenerationServiceTest.java
new file mode 100644
index 0000000..b11c33e
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/java/org/onap/sdc/generator/ArtifactGenerationServiceTest.java
@@ -0,0 +1,696 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator;
+
+import org.onap.sdc.generator.aai.model.*;
+import org.onap.sdc.generator.aai.model.Service;
+import org.onap.sdc.generator.aai.tosca.GroupDefinition;
+import org.onap.sdc.generator.aai.tosca.NodeTemplate;
+import org.onap.sdc.generator.aai.tosca.ToscaTemplate;
+import org.onap.sdc.generator.aai.xml.*;
+import org.onap.sdc.generator.aai.xml.Model;
+import org.onap.sdc.generator.data.*;
+import org.junit.Assert;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Unmarshaller;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.*;
+import java.util.Properties;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+@SuppressWarnings("Duplicates")
+public class ArtifactGenerationServiceTest {
+
+    public static final String RESOURCE_MAPPING_NOT_FOUND = "Resource mapping not found for ";
+    public static final String INV_UID = "-INV_UID";
+    public static final String VF_MODULE_NAMESPACE = "org.openecomp.groups.VfModule";
+    public static final String VF_MODULE_DESCRIPTION = "vf_module_description";
+    public static final String CATEGORY = "category";
+    static Map<String, String> resourcesVersion = new HashMap<>();
+    public static Properties properties = new Properties();
+
+    @SuppressWarnings("Since15")
+    public static void validateName(List<Artifact> artifactList) throws JAXBException {
+        for(Artifact artifact : artifactList){
+            String xml = new String(Base64.getDecoder().decode(artifact.getPayload()));
+            Model model = getUnmarshalledArtifactModel(xml);
+            String xmlName = "AAI-"+ model.getModelVers().getModelVer().get(0).getModelName()
+                +"-"+model
+                .getModelType
+                ()+"-"+model.getModelVers().getModelVer().get(0)
+                .getModelVersion()+".xml";
+
+            Assert.assertEquals(true,artifact.getName().equals(xmlName));
+
+        }
+    }
+
+    public static void checkArtifactName(String name){
+        Assert.assertEquals(true,name.length()<=255);
+    }
+
+    public static void checkArtifactLabel(String label){
+        Pattern pattern = Pattern.compile("[a-zA-Z0-9-+\\s]+");
+        Matcher matcher = pattern.matcher(label);
+        Assert.assertEquals(true,matcher.matches());
+    }
+
+    public static void checkArtifactDescription(String description){
+        Pattern pattern = Pattern.compile("[a-zA-Z\\s\\t\\n]+");
+        Matcher matcher = pattern.matcher(description);
+        Assert.assertEquals(true,matcher.matches());
+        Assert.assertEquals(true,description.length()<=256);
+
+    }
+
+    public static void testResourceTosca(Iterator<ToscaTemplate> itr, Map<String, Model>
+        outputArtifactMap) {
+        while(itr.hasNext()){
+            ToscaTemplate toscaTemplate = itr.next();
+            String resourceVersion= resourcesVersion.get(toscaTemplate.getMetadata().get("UUID"));
+            toscaTemplate.getMetadata().put("version", resourceVersion);
+            if("VF".equals(toscaTemplate.getMetadata().get("type")) && !("Allotted Resource".equals
+                (toscaTemplate.getMetadata().get(CATEGORY))) ){
+                testVfTosca(outputArtifactMap, toscaTemplate);
+            } else if("VF".equals(toscaTemplate.getMetadata().get("type")) && ("Allotted Resource".equals
+                (toscaTemplate.getMetadata().get(CATEGORY))) ){
+                testAllottedResourceTosca(outputArtifactMap, toscaTemplate);
+            } else if("VL".equals(toscaTemplate.getMetadata().get("type"))){
+                testL3NetworkResourceTosca(outputArtifactMap, toscaTemplate);
+            }
+        }
+    }
+
+    public static void testVfTosca(Map<String, Model> outputArtifactMap , ToscaTemplate resourceTosca) {
+
+        if (resourceTosca != null) {
+            Resource resource = new Resource();
+            resource.populateModelIdentificationInformation(resourceTosca.getMetadata());
+            String resourceNameVersionId = resource.getModelNameVersionId();
+            Model resourceAAIModel =
+                getAAIModelByNameVersionId(resourceNameVersionId, outputArtifactMap);
+            if (resourceAAIModel != null) {
+                validateResourceModelMetadata(resource, resourceAAIModel);
+                //Validate Resource instance base widget
+
+                ModelVer modelVersion = resourceAAIModel.getModelVers().getModelVer().get(0);
+
+                List<ModelElement> matchedVFBaseWidgetElements =
+                    getModelElementbyRelationshipValue(modelVersion.getModelElements(),
+                        Widget.getWidget(Widget.Type.VF).getId());
+                validateMatchedModelElementsInService(matchedVFBaseWidgetElements,
+                    Widget.getWidget(Widget.Type.VF).getName());
+
+                validateWidgetIds(matchedVFBaseWidgetElements, Widget.getWidget(Widget.Type.VF).getName(),
+                    Widget.getWidget(Widget.Type.VF).getWidgetId());
+
+                ModelElements baseResourceWidgetModelElements =
+                    matchedVFBaseWidgetElements.get(0).getModelElements();
+                if (resourceTosca.getTopology_template() != null) {
+                    Map<String, String> groupIdTypeStore = getGroupsTypeStore(resourceTosca);
+
+                    if (baseResourceWidgetModelElements.getModelElement().size() !=
+                        groupIdTypeStore.size()) {
+                        org.testng.Assert.fail("Missing VFModule in VF model.xml");
+                    }
+
+                    for (String key : groupIdTypeStore.keySet()) {
+
+                        List<ModelElement> matchedResourceElements =
+                            getModelElementbyRelationshipValue(baseResourceWidgetModelElements, key);
+                        validateMatchedModelElementsInService(matchedResourceElements,
+                            Widget.getWidget(Widget.Type.VFMODULE).getName());
+                        Model resourceAAIVFModel = getAAIModelByNameVersionId(key, outputArtifactMap);
+                        Map<String, String> vfModuleModelMetadata =
+                            getVFModuleMetadataTosca(resourceTosca, key);
+                        Map<String, Object> vfModuleMembers = getVFModuleMembersTosca(resourceTosca, key);
+
+                        validateVFModelMetadata(vfModuleModelMetadata, resourceAAIVFModel);
+
+
+                        ModelVer modelVfVersion = resourceAAIVFModel.getModelVers().getModelVer().get(0);
+
+                        List<ModelElement> matchedVFModuleBaseWidgetElements =
+                            getModelElementbyRelationshipValue(modelVfVersion.getModelElements(),
+                                Widget.getWidget(Widget.Type.VFMODULE).getId());
+                        validateMatchedModelElementsInService(matchedVFModuleBaseWidgetElements,
+                            Widget.getWidget(Widget.Type.VFMODULE).getName());
+                        validateWidgetIds(matchedVFModuleBaseWidgetElements, Widget.getWidget(Widget.Type.VFMODULE)
+                            .getName(), Widget.getWidget(Widget.Type.VFMODULE).getWidgetId());
+
+                        ModelElements baseResourceVFModuleWidgetModelElements =
+                            matchedVFModuleBaseWidgetElements.get(0).getModelElements();
+                        if (vfModuleMembers.containsKey("l3-network")) {
+                            //Validate l3
+                            List<ModelElement> matchedL3NetworkElements =
+                                getModelElementbyRelationshipValue(baseResourceVFModuleWidgetModelElements,
+                                    Widget.getWidget(Widget.Type.L3_NET).getId());
+                            validateMatchedModelElementsInService(matchedL3NetworkElements,
+                                Widget.getWidget(Widget.Type.L3_NET).getName());
+                            validateWidgetIds(matchedL3NetworkElements, Widget.getWidget(Widget.Type.L3_NET)
+                                .getName(), Widget.getWidget(Widget.Type.L3_NET).getWidgetId());
+                        }
+                        if (vfModuleMembers.containsKey("vserver")) {
+                            //Validate vserver
+                            List<ModelElement> matchedVserverElements =
+                                getModelElementbyRelationshipValue(baseResourceVFModuleWidgetModelElements,
+                                    Widget.getWidget(Widget.Type.VSERVER).getId());
+                            validateMatchedModelElementsInService(matchedVserverElements,
+                                Widget.getWidget(Widget.Type.VSERVER).getName());
+                            ModelElements vserverWidgetModelElements =
+                                matchedVserverElements.get(0).getModelElements();
+
+                            validateWidgetIds(matchedVserverElements, Widget.getWidget(Widget.Type.VSERVER)
+                                .getName(), Widget.getWidget(Widget.Type.VSERVER).getWidgetId());
+
+
+                            //Validate vserver->vfc
+                            List<ModelElement> matchedVfcElements =
+                                getModelElementbyRelationshipValue(vserverWidgetModelElements,
+                                    Widget.getWidget(Widget.Type.VFC).getId());
+                            validateMatchedModelElementsInService(matchedVfcElements,
+                                Widget.getWidget(Widget.Type.VFC).getName());
+                            validateWidgetIds(matchedVfcElements, Widget.getWidget(Widget.Type.VFC).getName(),
+                                Widget.getWidget(Widget.Type.VFC).getWidgetId());
+
+                            //Validate vserver->Image
+                            List<ModelElement> matchedImageElements =
+                                getModelElementbyRelationshipValue(vserverWidgetModelElements,
+                                    Widget.getWidget(Widget.Type.IMAGE).getId());
+                            validateMatchedModelElementsInService(matchedImageElements,
+                                Widget.getWidget(Widget.Type.IMAGE).getName());
+                            validateWidgetIds(matchedImageElements, Widget.getWidget(Widget.Type.IMAGE)
+                                .getName(), Widget.getWidget(Widget.Type.IMAGE).getWidgetId());
+
+
+                            //Validate vserver->Flavor
+                            List<ModelElement> matchedFlavorElements =
+                                getModelElementbyRelationshipValue(vserverWidgetModelElements,
+                                    Widget.getWidget(Widget.Type.FLAVOR).getId());
+                            validateMatchedModelElementsInService(matchedFlavorElements,
+                                Widget.getWidget(Widget.Type.FLAVOR).getName());
+                            validateWidgetIds(matchedFlavorElements, Widget.getWidget(Widget.Type.FLAVOR).getName(),
+                                Widget.getWidget(Widget.Type.FLAVOR).getWidgetId());
+
+                            //Validate vserver->Tenant
+                            List<ModelElement> matchedTenantElements =
+                                getModelElementbyRelationshipValue(vserverWidgetModelElements,
+                                    Widget.getWidget(Widget.Type.TENANT).getId());
+                            validateMatchedModelElementsInService(matchedTenantElements,
+                                Widget.getWidget(Widget.Type.TENANT).getName());
+                            validateWidgetIds(matchedTenantElements, Widget.getWidget(Widget.Type.TENANT).getName(),
+                                Widget.getWidget(Widget.Type.TENANT).getWidgetId());
+
+                            //Validate vserver->l-interface
+                            if (vfModuleMembers.containsKey("l-interface")) {
+                                List<ModelElement> matchedLinterfaceElements =
+                                    getModelElementbyRelationshipValue(vserverWidgetModelElements,
+                                        Widget.getWidget(Widget.Type.LINT).getId());
+                                validateMatchedModelElementsInService(matchedLinterfaceElements,
+                                    Widget.getWidget(Widget.Type.LINT).getName());
+                                validateWidgetIds(matchedLinterfaceElements, Widget.getWidget(Widget.Type.LINT).getName(),
+                                    Widget.getWidget(Widget.Type.LINT).getWidgetId());
+                            }
+                            //Validate vserver->volume
+                            if (vfModuleMembers.containsKey("volume")) {
+                                List<ModelElement> matchedVolumeElements =
+                                    getModelElementbyRelationshipValue(vserverWidgetModelElements,
+                                        Widget.getWidget(Widget.Type.VOLUME).getId());
+                                validateMatchedModelElementsInService(matchedVolumeElements,
+                                    Widget.getWidget(Widget.Type.VOLUME).getName());
+                                validateWidgetIds(matchedVolumeElements, Widget.getWidget(Widget.Type.VOLUME).getName(),
+                                    Widget.getWidget(Widget.Type.VOLUME).getWidgetId());
+                            }
+                        }
+                    }
+                }
+            } else {
+                System.out.println(RESOURCE_MAPPING_NOT_FOUND + resourceNameVersionId);
+            }
+        }
+    }
+
+    public static void testAllottedResourceTosca(Map<String, Model> outputArtifactMap , ToscaTemplate
+        resourceTosca) {
+
+        if (resourceTosca != null) {
+            Resource resource = new Resource();
+            resource.populateModelIdentificationInformation(resourceTosca.getMetadata());
+            String resourceNameVersionId = resource.getModelNameVersionId();
+            Model resourceAAIModel =
+                getAAIModelByNameVersionId(resourceNameVersionId, outputArtifactMap);
+            if (resourceAAIModel != null) {
+                validateResourceModelMetadata(resource, resourceAAIModel);
+                //Validate Resource instance base widget
+
+                ModelVer modelVersion = resourceAAIModel.getModelVers().getModelVer().get(0);
+
+                List<ModelElement> matchedVFBaseWidgetElements =
+                    getModelElementbyRelationshipValue(modelVersion.getModelElements(),
+                        Widget.getWidget(Widget.Type.ALLOTTED_RESOURCE).getId());
+                validateMatchedModelElementsInService(matchedVFBaseWidgetElements,
+                    Widget.getWidget(Widget.Type.ALLOTTED_RESOURCE).getName());
+
+                validateWidgetIds(matchedVFBaseWidgetElements, Widget.getWidget(Widget.Type.ALLOTTED_RESOURCE).getName(),
+                    Widget.getWidget(Widget.Type.ALLOTTED_RESOURCE).getWidgetId());
+
+                validateWidgetIds(matchedVFBaseWidgetElements, Widget.getWidget(Widget.Type.ALLOTTED_RESOURCE).getName(),
+                    Widget.getWidget(Widget.Type.ALLOTTED_RESOURCE).getWidgetId());
+
+                Map<String, Object> providingServiceDetails = getProvidingServiceDetails(resourceTosca);
+
+                ModelElements containedModelElements = modelVersion.getModelElements().getModelElement().
+                    get(0).getModelElements();
+
+                org.testng.Assert.assertEquals(containedModelElements.getModelElement().get(0).getRelationshipList()
+                     .getRelationship().get(0).getRelationshipData().get(0).getRelationshipValue(),
+                        providingServiceDetails.get("providing_service_uuid"));
+
+                org.testng.Assert.assertEquals(containedModelElements.getModelElement().get(0).getRelationshipList()
+                    .getRelationship().get(0).getRelationshipData().get(1).getRelationshipValue(),
+                        providingServiceDetails.get("providing_service_invariant_uuid"));
+
+
+                if("Allotted Resource".equals(resourceTosca.getMetadata().get(CATEGORY)) &&
+                    "Tunnel XConnect".equals(resourceTosca.getMetadata().get("subcategory"))) {
+
+                    List<ModelElement> matchedTunnelXConnectWidgetElements =
+                        getModelElementbyRelationshipValue(containedModelElements,
+                            Widget.getWidget(Widget.Type.TUNNEL_XCONNECT).getId());
+                    validateMatchedModelElementsInService(matchedTunnelXConnectWidgetElements,
+                        Widget.getWidget(Widget.Type.TUNNEL_XCONNECT).getName());
+
+                    validateWidgetIds(matchedTunnelXConnectWidgetElements, Widget.getWidget(Widget.Type.TUNNEL_XCONNECT).getName(),
+                        Widget.getWidget(Widget.Type.TUNNEL_XCONNECT).getWidgetId());
+                }
+
+            }else {
+                System.out.println(RESOURCE_MAPPING_NOT_FOUND + resourceNameVersionId);
+            }
+        }
+    }
+
+    public static Map<String, Object> getProvidingServiceDetails(ToscaTemplate resourceTemplate) {
+        Set<String> keys = resourceTemplate.getTopology_template().getNode_templates().keySet();
+
+        Map<String, Object> nodeProperties =null;
+        for(String key : keys) {
+            NodeTemplate node = resourceTemplate.getTopology_template().getNode_templates().get(key);
+            if(node.getType().contains("org.openecomp.resource.vfc") &&
+                node.getMetadata().get(CATEGORY).equals("Allotted Resource")) {
+                nodeProperties = node.getProperties();
+            }
+        }
+
+        return nodeProperties;
+    }
+
+    public static void testL3NetworkResourceTosca(Map<String, Model> outputArtifactMap , ToscaTemplate
+        resourceTosca) {
+
+        if (resourceTosca != null) {
+            Resource resource = new Resource();
+            resource.populateModelIdentificationInformation(resourceTosca.getMetadata());
+            String resourceNameVersionId = resource.getModelNameVersionId();
+            Model resourceAAIModel =
+                getAAIModelByNameVersionId(resourceNameVersionId, outputArtifactMap);
+            if (resourceAAIModel != null) {
+                validateResourceModelMetadata(resource, resourceAAIModel);
+                //Validate Resource instance base widget
+
+                ModelVer modelVersion = resourceAAIModel.getModelVers().getModelVer().get(0);
+
+                List<ModelElement> matchedVFBaseWidgetElements =
+                    getModelElementbyRelationshipValue(modelVersion.getModelElements(),
+                        Widget.getWidget(Widget.Type.L3_NET).getId());
+                validateMatchedModelElementsInService(matchedVFBaseWidgetElements,
+                    Widget.getWidget(Widget.Type.L3_NET).getName());
+
+                validateWidgetIds(matchedVFBaseWidgetElements, Widget.getWidget(Widget.Type.L3_NET).getName(),
+                    Widget.getWidget(Widget.Type.L3_NET).getWidgetId());
+
+            }else {
+                System.out.println(RESOURCE_MAPPING_NOT_FOUND + resourceNameVersionId);
+            }
+        }
+    }
+
+    public static void testServiceTosca(Map<String, Model> outputArtifactMap,List<ToscaTemplate>
+        toscas) {
+
+        ToscaTemplate serviceTosca = getServiceTosca(toscas);
+        if (serviceTosca == null) {
+            org.testng.Assert.fail("Service Tosca not found");
+        }
+        serviceTosca.getMetadata().put("version", SampleJUnitTest.additionalParams.get(
+            AdditionalParams
+            .ServiceVersion.getName()));
+        Service service = new Service();
+        service.populateModelIdentificationInformation(serviceTosca.getMetadata());
+        String serviceNameVersionId = service.getModelNameVersionId();
+        Model serviceAAIModel = getAAIModelByNameVersionId(serviceNameVersionId, outputArtifactMap);
+        validateServiceModelMetadata(service, serviceAAIModel);
+        //Validate Service instance base widget
+        ModelVer modelVersion =  serviceAAIModel.getModelVers().getModelVer().get(0);
+
+        List<ModelElement> matchedServiceBaseWidgetElements =
+            getModelElementbyRelationshipValue( modelVersion.getModelElements(),
+                Widget.getWidget(Widget.Type.SERVICE).getId());
+        validateMatchedModelElementsInService(matchedServiceBaseWidgetElements,
+            Widget.getWidget(Widget.Type.SERVICE).getName());
+
+        validateWidgetIds(matchedServiceBaseWidgetElements, Widget.getWidget(Widget.Type.SERVICE).getName(),
+            Widget.getWidget(Widget.Type.SERVICE).getWidgetId());
+
+        ModelElements baseServiceWidgetModelElements =
+            matchedServiceBaseWidgetElements.get(0).getModelElements();
+
+
+        Map<String, String> nodeTemplateIdTypeStore = getNodeTemplateTypeStore(serviceTosca);
+        if (nodeTemplateIdTypeStore != null) {
+            for (Map.Entry<String, String> entry : nodeTemplateIdTypeStore.entrySet()) {
+                if (entry.getValue().contains("org.openecomp.resource.vf")) {
+                    List<ModelElement> matchedResourceElements =
+                        getModelElementbyRelationshipValue(baseServiceWidgetModelElements, entry.getKey());
+                    if (entry.getValue().contains("org.openecomp.resource.vf.allottedResource")){
+                        validateMatchedModelElementsInService(matchedResourceElements,
+                            Widget.getWidget(Widget.Type.ALLOTTED_RESOURCE).getName());
+                    }else {
+                        validateMatchedModelElementsInService(matchedResourceElements,
+                            Widget.getWidget(Widget.Type.VF).getName());
+                    }
+
+                    //Validate uuid and invariantuuid are populated in model-ver.model-version-id and model.model-invariant-id
+                    org.testng.Assert.assertEquals(matchedResourceElements.get(0).getRelationshipList()
+                        .getRelationship().get(0)
+                        .getRelationshipData().get(0).getRelationshipValue(),entry.getKey());
+
+                    org.testng.Assert.assertEquals(matchedResourceElements.get(0).getRelationshipList().getRelationship().get(0)
+                        .getRelationshipData().get(1).getRelationshipValue(), nodeTemplateIdTypeStore
+                        .get(entry.getKey()+ INV_UID));
+                } else if(entry.getValue().contains("org.openecomp.resource.vl")){
+                    //validate l3-network in service tosca
+                    List<ModelElement> matchedResourceElements =
+                        getModelElementbyRelationshipValue(baseServiceWidgetModelElements, entry.getKey());
+                    validateMatchedModelElementsInService(matchedResourceElements,
+                        Widget.getWidget(Widget.Type.L3_NET).getName());
+                    //Validate uuid and invariantuuid are populated in model-ver.model-version-id and model.model-invariant-id
+                    org.testng.Assert.assertEquals(matchedResourceElements.get(0).getRelationshipList()
+                        .getRelationship().get(0)
+                        .getRelationshipData().get(0).getRelationshipValue(),entry.getKey());
+
+                    org.testng.Assert.assertEquals(matchedResourceElements.get(0).getRelationshipList().getRelationship().get(0)
+                        .getRelationshipData().get(1).getRelationshipValue(), nodeTemplateIdTypeStore
+                        .get(entry.getKey() + INV_UID));
+                }
+            }
+        }
+    }
+
+    private static void validateWidgetIds(List<ModelElement> matchedServiceBaseWidgetElements,
+                                          String widgetName, String widgetInvUuId) {
+        org.testng.Assert.assertEquals(matchedServiceBaseWidgetElements.get(0).getRelationshipList().getRelationship().get(0)
+            .getRelationshipData().get(0).getRelationshipValue(), properties.getProperty(
+            ArtifactType.AAI.name()
+            + ".model-version-id."+ widgetName));
+
+        org.testng.Assert.assertEquals(matchedServiceBaseWidgetElements.get(0).getRelationshipList().getRelationship().get(0)
+            .getRelationshipData().get(1).getRelationshipValue(), widgetInvUuId);
+    }
+
+
+
+    private static void validateMatchedModelElementsInService(List<ModelElement> matchedModelElements, String modelType) {
+        if (matchedModelElements.isEmpty()) {
+            Assert.fail(modelType + " not present ");
+        }
+        if (matchedModelElements.size() > 1) {
+            Assert.fail("More than one " + modelType + " present ");
+        }
+    }
+
+    private static Map<String, String> getNodeTemplateTypeStore(ToscaTemplate toscaTemplate) {
+        if (toscaTemplate.getTopology_template() != null) {
+            Map<String, NodeTemplate> nodeTemplateMap =
+                toscaTemplate.getTopology_template().getNode_templates();
+            Map<String, String> nodeTemplateIdTypeStore = new LinkedHashMap<>();
+            if (nodeTemplateMap != null) {
+                for (Map.Entry<String, NodeTemplate> e : nodeTemplateMap.entrySet()) {
+                    String uuid = e.getValue().getMetadata().get("resourceUUID");
+                    if (GeneratorUtil.isEmpty(uuid)) {
+                        uuid = e.getValue().getMetadata().get("UUID");
+                        if (GeneratorUtil.isEmpty(uuid)) {
+                            Assert.fail("UUID Not found");
+                        }
+                    }
+                    if(e.getValue().getType().contains("org.openecomp.resource.vf.")&& (e.getValue()
+                        .getMetadata().get(CATEGORY).equals("Allotted Resource")))
+                    {
+                        e.getValue().setType("org.openecomp.resource.vf.allottedResource");
+                    }
+                    nodeTemplateIdTypeStore.put(uuid, e.getValue().getType());
+                    resourcesVersion.put(uuid,e.getValue().getMetadata().get
+                        ("version"));
+                    //Populate invraintUuId for V9
+                    String invUuId = e.getValue().getMetadata().get("invariantUUID");
+                    nodeTemplateIdTypeStore.put(uuid + INV_UID , invUuId);
+                }
+            }
+            return nodeTemplateIdTypeStore;
+        } else {
+            return null;
+        }
+    }
+
+
+    private static Map<String, String> getGroupsTypeStore(ToscaTemplate toscaTemplate) {
+        if(toscaTemplate.getTopology_template() !=null) {
+            Map<String, GroupDefinition> groupDefinitionMap = toscaTemplate.getTopology_template().getGroups();
+            Map<String, String> groupDefinitionIdTypeStore = new LinkedHashMap<>();
+            if (groupDefinitionMap != null) {
+                for (Map.Entry<String, GroupDefinition> e : groupDefinitionMap.entrySet()) {
+                    if (e.getValue().getType().contains(VF_MODULE_NAMESPACE)) {
+                        String uuid = e.getValue().getMetadata().get("vfModuleModelUUID");
+                        if (GeneratorUtil.isEmpty(uuid)) {
+                            uuid = e.getValue().getMetadata().get("UUID");
+                            if (GeneratorUtil.isEmpty(uuid))
+                                Assert.fail("UUID Not found");
+                        }
+                        groupDefinitionIdTypeStore.put(uuid, e.getValue().getType());
+                    }
+                }
+            }
+            return groupDefinitionIdTypeStore;
+        }
+        else {
+            return null;
+        }
+    }
+
+    private static void validateServiceModelMetadata(Service serviceToscaModel, Model generatedAAIModel) {
+        Assert.assertEquals(serviceToscaModel.getModelNameVersionId(), generatedAAIModel
+            .getModelVers().getModelVer().get(0).getModelVersionId());
+        Assert.assertEquals(serviceToscaModel.getModelId(), generatedAAIModel.getModelInvariantId());
+        Assert.assertEquals(serviceToscaModel.getModelName(), generatedAAIModel.getModelVers()
+            .getModelVer().get(0).getModelName());
+        Assert.assertEquals(serviceToscaModel.getModelVersion(), generatedAAIModel.getModelVers()
+            .getModelVer().get(0).getModelVersion());
+        Assert.assertEquals(serviceToscaModel.getModelDescription(), generatedAAIModel.getModelVers()
+            .getModelVer().get(0).getModelDescription());
+    }
+
+    private static void validateResourceModelMetadata(Resource resouerceToscaModel, Model generatedAAIModel) {
+        Assert.assertEquals(resouerceToscaModel.getModelNameVersionId(), generatedAAIModel
+            .getModelVers().getModelVer().get(0).getModelVersionId());
+        Assert.assertEquals(resouerceToscaModel.getModelId(), generatedAAIModel.getModelInvariantId());
+        Assert.assertEquals(resouerceToscaModel.getModelName(), generatedAAIModel.getModelVers()
+            .getModelVer().get(0).getModelName());
+        Assert.assertEquals(resouerceToscaModel.getModelVersion(), generatedAAIModel.getModelVers()
+            .getModelVer().get(0).getModelVersion());
+        Assert.assertEquals(resouerceToscaModel.getModelDescription(), generatedAAIModel.getModelVers()
+            .getModelVer().get(0).getModelDescription());
+    }
+
+    private static void validateVFModelMetadata(Map<String, String> vfModuleModelMetadata, Model generatedAAIModel) {
+        Assert.assertEquals(vfModuleModelMetadata.get("vfModuleModelUUID"),  generatedAAIModel
+            .getModelVers().getModelVer().get(0).getModelVersionId());
+        Assert.assertEquals(vfModuleModelMetadata.get("vfModuleModelInvariantUUID"), generatedAAIModel.getModelInvariantId());
+        Assert.assertEquals(vfModuleModelMetadata.get("vfModuleModelName"), generatedAAIModel.getModelVers()
+            .getModelVer().get(0).getModelName());
+        Assert.assertEquals(vfModuleModelMetadata.get("vfModuleModelVersion"), generatedAAIModel.getModelVers()
+            .getModelVer().get(0).getModelVersion());
+        Assert.assertEquals(vfModuleModelMetadata.get(VF_MODULE_DESCRIPTION), generatedAAIModel.getModelVers()
+            .getModelVer().get(0).getModelDescription());
+
+    }
+
+    private static Model getAAIModelByNameVersionId(String nameVersionId,
+                                                    Map<String, Model> outputArtifactMap) {
+        return outputArtifactMap.get(nameVersionId);
+    }
+
+    private static List<ModelElement> getModelElementbyRelationshipValue(ModelElements modelElements,
+                                                                         String relationshipValue) {
+        List<ModelElement> matchedModelElements = new ArrayList<>();
+        if (modelElements != null) {
+            List<ModelElement> modelElementList = modelElements.getModelElement();
+            for (ModelElement element : modelElementList) {
+                List<Relationship> relationshipList = element.getRelationshipList().getRelationship();
+                for (Relationship r : relationshipList) {
+                    List<RelationshipData> relationshipDataList = r.getRelationshipData();
+                    for (RelationshipData relationshipData : relationshipDataList) {
+                        if (relationshipData.getRelationshipValue().equals(relationshipValue))
+                            matchedModelElements.add(element);
+                    }
+                }
+            }
+        }
+        return matchedModelElements;
+    }
+
+    public static void populateAAIGeneratedModelStore(Map<String, Model> outputArtifactMap,List<Artifact> resultData) throws JAXBException {
+        for (Artifact outputArtifact : resultData) {
+            if (outputArtifact.getType().equals(ArtifactType.MODEL_INVENTORY_PROFILE.name())) {
+                byte[] decodedPayload = GeneratorUtil.decoder(outputArtifact.getPayload());
+                Model aaiModel = getUnmarshalledArtifactModel(new String(decodedPayload));
+                outputArtifactMap.put(aaiModel.getModelVers().getModelVer().get(0).getModelVersionId(), aaiModel);
+            }
+        }
+    }
+
+    private static Model getUnmarshalledArtifactModel(String aaiModel) throws JAXBException {
+        JAXBContext jaxbContext;
+
+        jaxbContext = JAXBContext.newInstance(Model.class);
+        Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
+
+        try (InputStream aaiModelStream = new ByteArrayInputStream(aaiModel.getBytes())) {
+            return (Model) unmarshaller.unmarshal(aaiModelStream);
+        } catch (IOException ignored) { /* ignore */ }
+        throw new RuntimeException("could not resolve artifact model");
+    }
+
+    /**
+     * Identify the service tosca artifact from the list of translated tosca inputs
+     *
+     * @param input List of translated {@link ToscaTemplate tosca} object models
+     * @return Identified service {@link ToscaTemplate tosca}
+     */
+    private static ToscaTemplate getServiceTosca(List<ToscaTemplate> input) {
+        Iterator<ToscaTemplate> iter = input.iterator();
+        while (iter.hasNext()) {
+            ToscaTemplate tosca = iter.next();
+            if (tosca.isService()) {
+                iter.remove();
+                return tosca;
+            }
+        }
+        return null;
+    }
+
+
+    private static Map<String, String> getVFModuleMetadataTosca(ToscaTemplate toscaTemplate, String vfModuleModelUUID) {
+        Map<String, GroupDefinition> groupDefinitionMap = toscaTemplate.getTopology_template().getGroups();
+        Map<String, String> vfModuleModelMetadata = new LinkedHashMap<>();
+        for (Map.Entry<String, GroupDefinition> e : groupDefinitionMap.entrySet()) {
+            if (e.getValue().getType().contains(VF_MODULE_NAMESPACE)) {
+                String uuid = e.getValue().getMetadata().get("vfModuleModelUUID");
+                if (uuid == vfModuleModelUUID) {
+                    vfModuleModelMetadata = e.getValue().getMetadata();
+                    vfModuleModelMetadata.put(VF_MODULE_DESCRIPTION, (String) e.getValue().getProperties().get(VF_MODULE_DESCRIPTION));
+                }
+            }
+        }
+        return vfModuleModelMetadata;
+    }
+
+    private static Map<String, Object> getVFModuleMembersTosca(ToscaTemplate toscaTemplate, String vfModuleModelUUID) {
+        Map<String, GroupDefinition> groupDefinitionMap = toscaTemplate.getTopology_template().getGroups();
+        Map<String, NodeTemplate> nodeTemplateMaps = toscaTemplate.getTopology_template().getNode_templates();
+        Map<String, Object> vfModuleMembers = new LinkedHashMap<>();
+        List<String> vfModuleModelMetadata;
+        for (Map.Entry<String, GroupDefinition> e : groupDefinitionMap.entrySet()) {
+            if (e.getValue().getType().contains(VF_MODULE_NAMESPACE)) {
+                String uuid = e.getValue().getMetadata().get("vfModuleModelUUID");
+                if (uuid == vfModuleModelUUID) {
+                    vfModuleModelMetadata = e.getValue().getMembers();
+                    Iterator itr = vfModuleModelMetadata.iterator();
+                    while (itr.hasNext()) {
+                        Object obj= itr.next();
+                        NodeTemplate nodeTemplate = nodeTemplateMaps.get(obj);
+                        String nodetype = null;
+                        if (nodeTemplate != null)
+                            nodetype = nodeTemplate.getType();
+                        if (nodetype != null) {
+                            String widgetType = membersType(nodetype);
+                            if (widgetType != null)
+                                vfModuleMembers.put(widgetType, obj);
+                        }
+                    }
+
+                }
+            }
+        }
+
+        return vfModuleMembers;
+    }
+
+
+    private static String membersType(String toscaType) {
+        String modelToBeReturned = null;
+        while (toscaType != null && toscaType.lastIndexOf('.') != -1 && modelToBeReturned == null) {
+
+            switch (toscaType) {
+
+                case "org.openecomp.resource.vfc":
+                    modelToBeReturned = "vserver";
+                    break;
+                case "org.openecomp.resource.cp":
+                case "org.openecomp.cp":
+                    modelToBeReturned = "l-interface";
+                    break;
+                case "org.openecomp.resource.vl":
+                    modelToBeReturned = "l3-network";
+                    break;
+                case "org.openecomp.resource.vf":
+                    modelToBeReturned = "generic-vnf";
+                    break;
+                case VF_MODULE_NAMESPACE:
+                    modelToBeReturned = "vf-module";
+                    break;
+                case "org.openecomp.resource.vfc.nodes.heat.cinder":
+                    modelToBeReturned = "volume";
+                    break;
+                default:
+                    modelToBeReturned = null;
+                    break;
+            }
+
+            toscaType = toscaType.substring(0, toscaType.lastIndexOf("."));
+        }
+        return modelToBeReturned;
+    }
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/java/org/onap/sdc/generator/SampleJUnitTest.java b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/java/org/onap/sdc/generator/SampleJUnitTest.java
new file mode 100644
index 0000000..9c4def4
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/java/org/onap/sdc/generator/SampleJUnitTest.java
@@ -0,0 +1,1607 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.generator;
+
+import org.onap.sdc.generator.data.AdditionalParams;
+import org.onap.sdc.generator.data.Artifact;
+import org.onap.sdc.generator.data.ArtifactType;
+import org.onap.sdc.generator.data.GenerationData;
+import org.onap.sdc.generator.data.GeneratorConstants;
+import org.onap.sdc.generator.data.GeneratorUtil;
+import org.onap.sdc.generator.data.GroupType;
+import org.onap.sdc.generator.impl.ArtifactGenerationServiceImpl;
+import org.onap.sdc.generator.aai.model.Widget;
+import org.onap.sdc.generator.aai.tosca.ToscaTemplate;
+import org.onap.sdc.generator.aai.xml.Model;
+import org.onap.sdc.generator.data.*;
+
+import junit.framework.TestCase;
+import org.junit.Assert;
+import org.junit.Test;
+
+import java.io.*;
+import java.util.*;
+
+import static org.onap.sdc.generator.ArtifactGenerationServiceTest.*;
+
+public class SampleJUnitTest extends TestCase {
+
+    private static final String AAI_ARTIFACT_TYPE = ArtifactType.AAI.name();
+    private static final String AAI_ARTIFACT_GROUP_TYPE = GroupType.DEPLOYMENT.name();
+    private static final String GENERATOR_CONFIG = "{\"artifactTypes\": [\"OTHER\",\"AAI\"]}";
+    private static final String ARTIFACT_GENERATOR_CONFIG = "artifactgenerator.config";
+    private static final String CONFIG_PATH = "/qa-test-repo/jmeter3/apache-jmeter-3" +
+        ".0/lib/junit/";
+    private static final String GENERATOR_AAI_CONFIGLPROP_NOT_FOUND =
+        "Cannot generate artifacts. Widget configuration not found for %s";
+    private static final String GENERATOR_AAI_CONFIGFILE_NOT_FOUND =
+        "Cannot generate artifacts. Artifact Generator Configuration file not found at %s";
+    private static final String GENERATOR_AAI_CONFIGLOCATION_NOT_FOUND =
+        "Cannot generate artifacts. artifactgenerator.config system property not configured";
+    private static final String INVALID_VALUE_INVARIANT =
+        "Invalid value for mandatory attribute <invariantUUID> in Artifact";
+    private static final String INVALID_VALUE_UUID =
+        "Invalid value for mandatory attribute <UUID> in Artifact:";
+    static final Map<String, String> additionalParams = new HashMap<>();
+    public static final String ARTIFACT_GENERATOR_PROPERTIES = "Artifact-Generator.properties";
+    public static final String VF_VMME_TEMPLATE_NO_SYSTEM_PROP_CONFIGURED_YML = "vf_vmme_template_NoSystemPropConfigured.yml";
+    public static final String SERVICE_VMME_TEMPLATE_NO_SYSTEM_PROP_CONFIGURED_YML = "service_vmme_template_NoSystemPropConfigured.yml";
+
+    static{
+        additionalParams.put(AdditionalParams.ServiceVersion.getName(),"1.0");
+    }
+
+    public SampleJUnitTest(String name) throws IOException {
+        super(name);
+        System.setProperty(ARTIFACT_GENERATOR_CONFIG,CONFIG_PATH + ARTIFACT_GENERATOR_PROPERTIES);
+        loadConfig(ArtifactGenerationServiceTest.properties);
+    }
+
+    private void loadConfig(Properties properties) throws IOException {
+        String configLocation = System.getProperty(ARTIFACT_GENERATOR_CONFIG);
+        if (configLocation != null) {
+            File file = new File(configLocation);
+            if (file.exists()) {
+
+                try (InputStream fis = new FileInputStream(file)) {
+                    properties.load(fis);
+                }
+            }
+        }
+    }
+
+    public SampleJUnitTest() {
+        super();
+        System.setProperty(ARTIFACT_GENERATOR_CONFIG,CONFIG_PATH + ARTIFACT_GENERATOR_PROPERTIES);
+    }
+
+    @Test
+    public void testArtifactGenerationSingleVFSingleVFModule() {
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+            readPayloadFromResource(inputArtifacts, "vf_vmme_template_SingleVFVFMod.yml");
+
+            readPayloadFromResource(inputArtifacts, "service_vmme_template_SingleVFVFMod.yml");
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+            List<ToscaTemplate> toscas = new LinkedList();
+
+            GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
+
+            for (Artifact inputArtifact : inputArtifacts) {
+                toscas.add(getToscaModel(inputArtifact));
+            }
+            List<Artifact> resultData = data.getResultData();
+
+            Map<String, Model> outputArtifactMap = new HashMap<>();
+            ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap, resultData);
+            ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap, toscas);
+
+            testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+            Assert.assertEquals(5, data.getResultData().size());
+
+            removeMockArtifact(data.getResultData().iterator());
+
+            ArtifactGenerationServiceTest.validateName(data.getResultData());
+
+
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+    }
+
+    @Test
+    public void testArtifactGenerationMissingVFInServiceTOSCA() {
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+            readPayloadFromResource(inputArtifacts, "service_vmme_template_MissingVFInServiceTOSCA.yml");
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+            List<ToscaTemplate> toscas = new LinkedList();
+
+            GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
+
+            for (Artifact inputArtifact : inputArtifacts) {
+                toscas.add(getToscaModel(inputArtifact));
+            }
+            List<Artifact> resultData = data.getResultData();
+
+            Map<String, Model> outputArtifactMap = new HashMap<>();
+            ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap, resultData);
+            ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap, toscas);
+
+            Assert.assertEquals(3, data.getResultData().size());
+
+            removeMockArtifact(data.getResultData().iterator());
+
+            ArtifactGenerationServiceTest.validateName(data.getResultData());
+
+
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+    }
+
+    @Test
+    public void testArtifactGenerationVerifySameStaticWidgetsForAllServices() {
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+            readPayloadFromResource(inputArtifacts, "vf_vmme_template_SameWidgets1.yml");
+
+            readPayloadFromResource(inputArtifacts, "service_vmme_template_SameWidget1.yml");
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+            List<ToscaTemplate> toscas = new LinkedList();
+
+            GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
+
+            for (Artifact inputArtifact : inputArtifacts) {
+                toscas.add(getToscaModel(inputArtifact));
+            }
+            List<Artifact> resultData = data.getResultData();
+
+            Map<String, Model> outputArtifactMap = new HashMap<>();
+            ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap, resultData);
+
+            removeMockArtifact(data.getResultData().iterator());
+
+
+            List<Artifact> inputArtifacts2 = new ArrayList();
+            readPayloadFromResource(inputArtifacts2, "vf_vmme_template_SameWidgets2.yml");
+
+            readPayloadFromResource(inputArtifacts2, "service_vmme_template_SameWidget2.yml");
+            ArtifactGenerationServiceImpl obj2 = new ArtifactGenerationServiceImpl();
+
+            GenerationData data2 = obj2.generateArtifact(inputArtifacts2, GENERATOR_CONFIG,additionalParams);
+            List<Artifact> resultData2 = data2.getResultData();
+
+            List<ToscaTemplate> toscas2 = new LinkedList();
+
+            for (Artifact inputArtifact : inputArtifacts2) {
+                toscas2.add(getToscaModel(inputArtifact));
+            }
+
+            Map<String, Model> outputArtifactMap2 = new HashMap<>();
+            ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap2, resultData2);
+            removeMockArtifact(data2.getResultData().iterator());
+
+            Map<String,String> map = new HashMap<>();
+            Iterator<Artifact> itr =  data.getResultData().iterator();
+                    while(itr.hasNext()){
+                        Artifact artifact=itr.next();
+                        if(artifact.getLabel().contains("AAI-widget")){
+                            map.put(artifact.getName(),artifact.getChecksum());
+                        }
+                    }
+            Map<String,String> map2 = new HashMap<>();
+            Iterator<Artifact> itr2 =  data2.getResultData().iterator();
+            while(itr2.hasNext()){
+                Artifact artifact=itr2.next();
+                if(artifact.getLabel().contains("AAI-widget")){
+                    map2.put(artifact.getName(),artifact.getChecksum());
+                }
+            }
+            Assert.assertEquals(map.size(),map2.size());
+            for(Map.Entry<String, String> entry : map.entrySet()){
+                Assert.assertEquals(entry.getValue(), map2.get(entry.getKey()));
+            }
+
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+    }
+
+    @Test
+    public void testArtifactGenerationMulVFModule() {
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+            readPayloadFromResource(inputArtifacts, "vf_vmme_template_MulVFVFMod.yml");
+
+            readPayloadFromResource(inputArtifacts, "service_vmme_template_MulVFVFMod.yml");
+
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+            List<ToscaTemplate> toscas = new LinkedList();
+
+            GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
+
+                for (Artifact inputArtifact : inputArtifacts) {
+                    toscas.add(getToscaModel(inputArtifact));
+                }
+                List<Artifact> resultData = data.getResultData();
+
+                Map<String, Model> outputArtifactMap = new HashMap<>();
+                ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
+                ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
+                testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+            Assert.assertEquals(3,data.getResultData().size());
+
+            removeMockArtifact(data.getResultData().iterator());
+
+            ArtifactGenerationServiceTest.validateName(data.getResultData());
+
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+    }
+
+    @Test
+    public void testArtifactGenerationMulVFs() {
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+
+            readPayloadFromResource(inputArtifacts, "CMAUI_VF.yaml");
+
+            readPayloadFromResource(inputArtifacts, "ECA_OAM_VF.yaml");
+
+            readPayloadFromResource(inputArtifacts, "MMSC_Sevice_07_25_16.yaml");
+
+            readPayloadFromResource(inputArtifacts, "MMSC_VF.yaml");
+
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+            List<ToscaTemplate> toscas = new LinkedList();
+
+            GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
+
+            for (Artifact inputArtifact : inputArtifacts) {
+                toscas.add(getToscaModel(inputArtifact));
+            }
+            List<Artifact> resultData = data.getResultData();
+
+            Map<String, Model> outputArtifactMap = new HashMap<>();
+            ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
+            ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
+            testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+            Assert.assertEquals(8,data.getResultData().size());
+
+            removeMockArtifact(data.getResultData().iterator());
+
+            ArtifactGenerationServiceTest.validateName(data.getResultData());
+
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+    }
+
+    @Test
+    public void testArtifactGenerationDupVFUUID() {
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+            readPayloadFromResource(inputArtifacts, "vf_vmme_template_DupVFUUID.yml");
+
+            readPayloadFromResource(inputArtifacts, "service_vmme_template_DupVFUUID.yml");
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+            List<ToscaTemplate> toscas = new LinkedList();
+
+            GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
+
+                for (Artifact inputArtifact : inputArtifacts) {
+                    toscas.add(getToscaModel(inputArtifact));
+                }
+                List<Artifact> resultData = data.getResultData();
+
+                Map<String, Model> outputArtifactMap = new HashMap<>();
+                ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
+                ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
+                testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+            Assert.assertEquals(5,data.getResultData().size());
+
+            removeMockArtifact(data.getResultData().iterator());
+
+            ArtifactGenerationServiceTest.validateName(data.getResultData());
+
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+    }
+
+    @Test
+    public void testArtifactGenerationDupVFModUUID() {
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+            readPayloadFromResource(inputArtifacts, "vf_vmme_template_DupVFModUUID.yml");
+
+            readPayloadFromResource(inputArtifacts, "service_vmme_template_DupVFModUUID.yml");
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+            List<ToscaTemplate> toscas = new LinkedList();
+
+            GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
+
+                for (Artifact inputArtifact : inputArtifacts) {
+                    toscas.add(getToscaModel(inputArtifact));
+                }
+                List<Artifact> resultData = data.getResultData();
+
+                Map<String, Model> outputArtifactMap = new HashMap<>();
+                ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
+                ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
+                testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+            Assert.assertEquals(5,data.getResultData().size());
+
+            removeMockArtifact(data.getResultData().iterator());
+
+            ArtifactGenerationServiceTest.validateName(data.getResultData());
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+    }
+
+    @Test
+    public void testArtifactGenerationVerifyVFModWithoutVNFC() {
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+            readPayloadFromResource(inputArtifacts, "vf_vmme_template_VerifyVFModWithoutVNFC.yml");
+
+            readPayloadFromResource(inputArtifacts, "service_vmme_template_VerifyVFModWithoutVNFC.yml");
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+            List<ToscaTemplate> toscas = new LinkedList();
+
+            GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
+
+                for (Artifact inputArtifact : inputArtifacts) {
+                    toscas.add(getToscaModel(inputArtifact));
+                }
+                List<Artifact> resultData = data.getResultData();
+
+                Map<String, Model> outputArtifactMap = new HashMap<>();
+                ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
+                ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
+                testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+            Assert.assertEquals(5,data.getResultData().size());
+
+            removeMockArtifact(data.getResultData().iterator());
+
+            ArtifactGenerationServiceTest.validateName(data.getResultData());
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+    }
+
+    @Test
+    public void testArtifactGenerationVerifyVFModWithInvalidMember() {
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+            readPayloadFromResource(inputArtifacts, "vf_vmme_template_VerifyVFModWithInvalidNo.yml");
+
+            readPayloadFromResource(inputArtifacts, "service_vmme_template_VerifyVFModWithInvalidNo.yml");
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+            List<ToscaTemplate> toscas = new LinkedList();
+
+            GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
+
+                for (Artifact inputArtifact : inputArtifacts) {
+                    toscas.add(getToscaModel(inputArtifact));
+                }
+                List<Artifact> resultData = data.getResultData();
+
+                Map<String, Model> outputArtifactMap = new HashMap<>();
+                ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
+                ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
+                testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+            Assert.assertEquals(5,data.getResultData().size());
+
+            removeMockArtifact(data.getResultData().iterator());
+
+            ArtifactGenerationServiceTest.validateName(data.getResultData());
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+    }
+
+    @Test
+    public void testArtifactGenerationNullFields() {
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+            readPayloadFromResource(inputArtifacts, "vf_vmme_template_NullFields.yml");
+
+            readPayloadFromResource(inputArtifacts, "service_vmme_template_NullFields.yml");
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+
+            GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
+            Assert.assertEquals(false,data.getErrorData().isEmpty());
+
+            Assert.assertEquals("Invalid Service/Resource definition mandatory attribute <UUID> missing in Artifact: <"+inputArtifacts.get(0).getName()+">",data.getErrorData().get("AAI").get(0));
+
+            Assert.assertEquals(2,data.getResultData().size());
+
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+    }
+
+    @Test
+    public void testArtifactGenerationInCorrectYmlFormat() {
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+
+            readPayloadFromResource(inputArtifacts, "CMAUI_VFInvalidFormat.yaml");
+
+            readPayloadFromResource(inputArtifacts, "ECA_OAM_VFInvalidFormat.yaml");
+
+            readPayloadFromResource(inputArtifacts, "MMSC_Sevice_07_25_16InvalidFormat.yaml");
+
+            readPayloadFromResource(inputArtifacts, "MMSC_VFInvalidFormat.yaml");
+
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+
+            GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
+            Assert.assertEquals(false,data.getErrorData().isEmpty());
+
+            Assert.assertEquals("Invalid format for Tosca YML  : "+inputArtifacts.get(1).getName(),data.getErrorData().get("AAI").get(0));
+
+            Assert.assertEquals(2,data.getResultData().size());
+
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+    }
+
+    @Test
+    public void testArtifactGenerationMulComp() {
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+            readPayloadFromResource(inputArtifacts, "vf_vmme_template_MulComp.yml");
+
+            readPayloadFromResource(inputArtifacts, "service_vmme_template_MulComp.yml");
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+            List<ToscaTemplate> toscas = new LinkedList();
+
+            GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
+
+                for (Artifact inputArtifact : inputArtifacts) {
+                    toscas.add(getToscaModel(inputArtifact));
+                }
+                List<Artifact> resultData = data.getResultData();
+
+                Map<String, Model> outputArtifactMap = new HashMap<>();
+                ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
+                ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
+                testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+            Assert.assertEquals(5,data.getResultData().size());
+
+            removeMockArtifact(data.getResultData().iterator());
+
+            ArtifactGenerationServiceTest.validateName(data.getResultData());
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+    }
+
+    @Test
+    public void testArtifactGenerationOrphan() {
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+
+            readPayloadFromResource(inputArtifacts, "vf_vmme_template_Orphan.yml");
+
+            readPayloadFromResource(inputArtifacts, "service_vmme_template_Orphan.yml");
+
+            readPayloadFromResource(inputArtifacts, "ECA_OAM_VFOrphan.yaml");
+
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+            List<ToscaTemplate> toscas = new LinkedList();
+
+            GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
+
+                for (Artifact inputArtifact : inputArtifacts) {
+                    toscas.add(getToscaModel(inputArtifact));
+                }
+                List<Artifact> resultData = data.getResultData();
+
+                Map<String, Model> outputArtifactMap = new HashMap<>();
+                ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
+                ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
+                testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+            Assert.assertEquals(5,data.getResultData().size());
+
+            removeMockArtifact(data.getResultData().iterator());
+
+            ArtifactGenerationServiceTest.validateName(data.getResultData());
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+    }
+
+    @Test
+    public void testArtifactGenerationMissingVFTemplate() {
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+
+            readPayloadFromResource(inputArtifacts, "service_vmme_template_MissingVFTemplate.yml");
+
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+            List<ToscaTemplate> toscas = new LinkedList();
+
+            GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
+
+                for (Artifact inputArtifact : inputArtifacts) {
+                    toscas.add(getToscaModel(inputArtifact));
+                }
+                List<Artifact> resultData = data.getResultData();
+
+                Map<String, Model> outputArtifactMap = new HashMap<>();
+                ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
+                ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
+
+
+            Assert.assertEquals(3,data.getResultData().size());
+
+            removeMockArtifact(data.getResultData().iterator());
+
+            ArtifactGenerationServiceTest.validateName(data.getResultData());
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+    }
+
+    @Test
+    public void testArtifactGenerationMissingVFModule() {
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+
+            readPayloadFromResource(inputArtifacts, "CMAUI_VFMissingVFModule.yaml");
+
+            readPayloadFromResource(inputArtifacts, "ECA_OAM_VFMissingVFModule.yaml");
+
+            readPayloadFromResource(inputArtifacts, "MMSC_Sevice_07_25_16MissingVFModule.yaml");
+
+            readPayloadFromResource(inputArtifacts, "MMSC_VFMissingVFModule.yaml");
+
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+            List<ToscaTemplate> toscas = new LinkedList();
+
+            GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
+
+                for (Artifact inputArtifact : inputArtifacts) {
+                    toscas.add(getToscaModel(inputArtifact));
+                }
+                List<Artifact> resultData = data.getResultData();
+
+                Map<String, Model> outputArtifactMap = new HashMap<>();
+                ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
+                ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
+                testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+            Assert.assertEquals(8,data.getResultData().size());
+
+            removeMockArtifact(data.getResultData().iterator());
+
+            ArtifactGenerationServiceTest.validateName(data.getResultData());
+
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+    }
+
+    @Test
+    public void testArtifactGenerationEmptyArtifact() {
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+
+            GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
+            Assert.assertEquals(false,data.getErrorData().isEmpty());
+            Assert.assertEquals("Service tosca missing from list of input artifacts",data.getErrorData().get("AAI").get(0));
+
+            Assert.assertEquals(2,data.getResultData().size());
+
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+    }
+
+    @Test
+    public void testArtifactGenerationMissingConfigFile() {
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+
+            readPayloadFromResource(inputArtifacts, "vf_vmme_template_SingleVFVFMod.yml");
+
+            readPayloadFromResource(inputArtifacts, "service_vmme_template_SingleVFVFMod.yml");
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+
+            GenerationData data = obj.generateArtifact(inputArtifacts, "",additionalParams);
+            Assert.assertEquals(false,data.getErrorData().isEmpty());
+            Assert.assertEquals("Invalid Client Configuration",data.getErrorData().get("ARTIFACT_GENERATOR_INVOCATION_ERROR").get(0));
+
+            Assert.assertEquals(0,data.getResultData().size());
+
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+    }
+
+
+    @Test
+    public void testArtifactGenerationWithNodeTemplates() {
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+
+            readPayloadFromResource(inputArtifacts, "ServiceWithNodetemplate.yml");
+
+            readPayloadFromResource(inputArtifacts, "Resource0-template.yml");
+
+            readPayloadFromResource(inputArtifacts, "Resource1-template.yml");
+
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+            List<ToscaTemplate> toscas = new LinkedList();
+
+            GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
+
+            for (Artifact inputArtifact : inputArtifacts) {
+                toscas.add(getToscaModel(inputArtifact));
+            }
+            List<Artifact> resultData = data.getResultData();
+
+            Map<String, Model> outputArtifactMap = new HashMap<>();
+            ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
+            ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
+            testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+            Assert.assertEquals(5,data.getResultData().size());
+
+            removeMockArtifact(data.getResultData().iterator());
+
+            ArtifactGenerationServiceTest.validateName(data.getResultData());
+
+
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+    }
+
+    @Test
+    public void testArtifactGenerationWithoutNodeTemplates() {
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+
+            readPayloadFromResource(inputArtifacts, "Service0-template.yml");
+
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+            List<ToscaTemplate> toscas = new LinkedList();
+
+            GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
+
+            for (Artifact inputArtifact : inputArtifacts) {
+                toscas.add(getToscaModel(inputArtifact));
+            }
+            List<Artifact> resultData = data.getResultData();
+
+            Map<String, Model> outputArtifactMap = new HashMap<>();
+            ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
+            ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
+
+
+            Assert.assertEquals(3,data.getResultData().size());
+
+            removeMockArtifact(data.getResultData().iterator());
+
+            ArtifactGenerationServiceTest.validateName(data.getResultData());
+
+
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+    }
+
+    @Test
+    public void testArtifactGenerationWithArtifactNameAndDescMoreThan256() {
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+
+            readPayloadFromResource(inputArtifacts, "Service0-templateMoreThan256.yml");
+
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+            List<ToscaTemplate> toscas = new LinkedList();
+
+            GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
+
+            for (Artifact inputArtifact : inputArtifacts) {
+                toscas.add(getToscaModel(inputArtifact));
+            }
+            List<Artifact> resultData = data.getResultData();
+
+            Map<String, Model> outputArtifactMap = new HashMap<>();
+            ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
+            ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
+
+
+            Assert.assertEquals(3,data.getResultData().size());
+
+            removeMockArtifact(data.getResultData().iterator());
+
+            for(Artifact artifact : data.getResultData()){
+                checkArtifactName(artifact.getName());
+                checkArtifactLabel(artifact.getLabel());
+                checkArtifactDescription(artifact.getDescription());
+
+            }
+
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+    }
+
+    @Test
+    public void testArtifactGenerationWithDifferentVersionOfSameVF() {
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+
+            readPayloadFromResource(inputArtifacts, "service_vmme_template_DiffVerOfSameVF.yml");
+
+            readPayloadFromResource(inputArtifacts, "vf_vmme_template_DiffVerOfSameVF_1.yml");
+
+            readPayloadFromResource(inputArtifacts, "vf_vmme_template_DiffVerOfSameVF_2.yml");
+
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+            List<ToscaTemplate> toscas = new LinkedList();
+
+            GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
+
+            for (Artifact inputArtifact : inputArtifacts) {
+                toscas.add(getToscaModel(inputArtifact));
+            }
+            List<Artifact> resultData = data.getResultData();
+
+            Map<String, Model> outputArtifactMap = new HashMap<>();
+            ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
+            ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
+            testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+            Assert.assertEquals(6,data.getResultData().size());
+
+            removeMockArtifact(data.getResultData().iterator());
+
+            ArtifactGenerationServiceTest.validateName(data.getResultData());
+
+
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+    }
+
+    @Test
+    public void testArtifactGenerationWithDifferentVersionOfSameVFModWithSameInvId() {
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+
+            readPayloadFromResource(inputArtifacts, "service_vmme_template_DiffVerOfSameVFModWithSameInvId.yml");
+
+            readPayloadFromResource(inputArtifacts, "vf_vmme_template_DiffVerOfSameVFModWithSameInvId.yml");
+
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+            List<ToscaTemplate> toscas = new LinkedList();
+
+            GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
+
+            for (Artifact inputArtifact : inputArtifacts) {
+                toscas.add(getToscaModel(inputArtifact));
+            }
+            List<Artifact> resultData = data.getResultData();
+
+            Map<String, Model> outputArtifactMap = new HashMap<>();
+            ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
+            ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
+            testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+            Assert.assertEquals(6,data.getResultData().size());
+
+            removeMockArtifact(data.getResultData().iterator());
+
+            ArtifactGenerationServiceTest.validateName(data.getResultData());
+
+
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+    }
+
+    @Test
+    public void testArtifactGenerationWithServiceContainingL3Network() {
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+
+            readPayloadFromResource(inputArtifacts, "service_vmme_template_WithL3Network.yml");
+
+            readPayloadFromResource(inputArtifacts, "vf_vmme_template_WithL3Network.yml");
+
+            readPayloadFromResource(inputArtifacts, "resource-AllottedResource-template_WithL3Network.yml");
+
+            readPayloadFromResource(inputArtifacts, "resource-Extvl-template_WithL3Network.yml");
+
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+            List<ToscaTemplate> toscas = new LinkedList();
+
+            GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
+
+            for (Artifact inputArtifact : inputArtifacts) {
+                toscas.add(getToscaModel(inputArtifact));
+            }
+            List<Artifact> resultData = data.getResultData();
+
+            Map<String, Model> outputArtifactMap = new HashMap<>();
+            ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
+            ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
+            testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+            Assert.assertEquals(7,data.getResultData().size());
+
+            removeMockArtifact(data.getResultData().iterator());
+
+            ArtifactGenerationServiceTest.validateName(data.getResultData());
+
+
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+    }
+
+    @Test
+    public void testArtifactGenerationWithServiceContainingDupL3Network() {
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+
+            readPayloadFromResource(inputArtifacts, "service_vmme_template_WithDupL3Network.yml");
+
+            readPayloadFromResource(inputArtifacts, "vf_vmme_template_WithDupL3Network.yml");
+
+            readPayloadFromResource(inputArtifacts, "resource-AllottedResource-template_WithDupL3Network.yml");
+
+            readPayloadFromResource(inputArtifacts, "resource-Extvl-template_WithDupL3Network.yml");
+
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+            List<ToscaTemplate> toscas = new LinkedList();
+
+            GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
+
+            for (Artifact inputArtifact : inputArtifacts) {
+                toscas.add(getToscaModel(inputArtifact));
+            }
+            List<Artifact> resultData = data.getResultData();
+
+            Map<String, Model> outputArtifactMap = new HashMap<>();
+            ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
+            ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
+            testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+            Assert.assertEquals(7,data.getResultData().size());
+
+            removeMockArtifact(data.getResultData().iterator());
+
+            ArtifactGenerationServiceTest.validateName(data.getResultData());
+
+
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+    }
+
+    @Test
+    public void testArtifactGenerationWithL3NetworkInVFMod() {
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+
+            readPayloadFromResource(inputArtifacts, "service_vmme_template_WithL3NetworkInVFMod.yml");
+
+            readPayloadFromResource(inputArtifacts, "vf_vmme_template_WithL3NetworkInVFMod.yml");
+
+            readPayloadFromResource(inputArtifacts, "resource-AllottedResource-template_WithL3NetworkInVFMod.yml");
+
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+            List<ToscaTemplate> toscas = new LinkedList();
+
+            GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
+
+            for (Artifact inputArtifact : inputArtifacts) {
+                toscas.add(getToscaModel(inputArtifact));
+            }
+            List<Artifact> resultData = data.getResultData();
+
+            Map<String, Model> outputArtifactMap = new HashMap<>();
+            ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
+            ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
+            testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+            Assert.assertEquals(6,data.getResultData().size());
+
+            removeMockArtifact(data.getResultData().iterator());
+
+            ArtifactGenerationServiceTest.validateName(data.getResultData());
+
+
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+    }
+
+    @Test
+    public void testArtifactGenerationWithDiffVersionOfSameL3Network() {
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+
+            readPayloadFromResource(inputArtifacts, "service_vmme_template_WithDiffVersionOfSameL3Network.yml");
+
+            readPayloadFromResource(inputArtifacts, "vf_vmme_template_WithDiffVersionOfSameL3Network.yml");
+
+            readPayloadFromResource(inputArtifacts, "resource-AllottedResource-template_WithDiffVersionOfSameL3Network.yml");
+
+            readPayloadFromResource(inputArtifacts, "resource-Extvl-template_WithDiffVersionOfSameL3Network.yml");
+
+            readPayloadFromResource(inputArtifacts, "resource-Extvl-template_1_WithDiffVersionOfSameL3Network.yml");
+
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+            List<ToscaTemplate> toscas = new LinkedList();
+
+            GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
+
+            for (Artifact inputArtifact : inputArtifacts) {
+                toscas.add(getToscaModel(inputArtifact));
+            }
+            List<Artifact> resultData = data.getResultData();
+
+            Map<String, Model> outputArtifactMap = new HashMap<>();
+            ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap,resultData);
+            ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap,toscas);
+            testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+            Assert.assertEquals(8,data.getResultData().size());
+
+            removeMockArtifact(data.getResultData().iterator());
+
+            ArtifactGenerationServiceTest.validateName(data.getResultData());
+
+
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+    }
+
+    @Test
+    public void testArtifactGenerationWithInvIdGreaterThanSpecifiedLimit() {
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+            readPayloadFromResource(inputArtifacts, "vf_vmme_template_WithInvIdGreaterThanSpecifiedLimit.yml");
+
+            readPayloadFromResource(inputArtifacts, "service_vmme_template_WithInvIdGreaterThanSpecifiedLimit.yml");
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+
+            GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
+            Assert.assertEquals(false,data.getErrorData().isEmpty());
+
+            Assert.assertEquals(INVALID_VALUE_INVARIANT + ": <" +inputArtifacts.get(1).getName()+">",data.getErrorData().get("AAI").get(0));
+
+            Assert.assertEquals(2,data.getResultData().size());
+
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+    }
+
+    @Test
+    public void testArtifactGenerationWithInvIdLesserThanSpecifiedLimit() {
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+            readPayloadFromResource(inputArtifacts, "vf_vmme_template_WithInvIdLesserThanSpecifiedLimit.yml");
+
+            readPayloadFromResource(inputArtifacts, "service_vmme_template_WithInvIdLesserThanSpecifiedLimit.yml");
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+
+            GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
+            Assert.assertEquals(false,data.getErrorData().isEmpty());
+
+            Assert.assertEquals(INVALID_VALUE_UUID + " <"
+                +inputArtifacts.get(1).getName()+">",data.getErrorData().get("AAI").get(0));
+
+            Assert.assertEquals(2,data.getResultData().size());
+
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+    }
+
+
+    @Test
+    public void testErrorWhenNoSystemPropConfigured() {
+        String configLoc = System.getProperty(ARTIFACT_GENERATOR_CONFIG);
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+            readPayloadFromResource(inputArtifacts, VF_VMME_TEMPLATE_NO_SYSTEM_PROP_CONFIGURED_YML);
+
+            readPayloadFromResource(inputArtifacts, SERVICE_VMME_TEMPLATE_NO_SYSTEM_PROP_CONFIGURED_YML);
+
+            System.clearProperty(ARTIFACT_GENERATOR_CONFIG);
+
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+            GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
+            Assert.assertEquals(false,data.getErrorData().isEmpty());
+            Assert.assertEquals(data.getErrorData().
+                get("AAI").get(0), GENERATOR_AAI_CONFIGLOCATION_NOT_FOUND);
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+        finally{
+            System.setProperty(ARTIFACT_GENERATOR_CONFIG,configLoc);
+        }
+    }
+
+    @Test
+    public void testErrorWhenNoFileAtConfigLocation() {
+        String configLoc = System.getProperty(ARTIFACT_GENERATOR_CONFIG);
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+            readPayloadFromResource(inputArtifacts, VF_VMME_TEMPLATE_NO_SYSTEM_PROP_CONFIGURED_YML);
+
+            readPayloadFromResource(inputArtifacts, SERVICE_VMME_TEMPLATE_NO_SYSTEM_PROP_CONFIGURED_YML);
+
+            System.setProperty(ARTIFACT_GENERATOR_CONFIG,configLoc + File.separator + "testErrorWhenNoFileAtConfigLocation");
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+            GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
+            Assert.assertEquals(data.getErrorData().isEmpty(),false);
+            Assert.assertEquals(data.getErrorData().get("AAI").get(0),String.format(
+                GENERATOR_AAI_CONFIGFILE_NOT_FOUND,System.getProperty
+                (ARTIFACT_GENERATOR_CONFIG)));
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+        finally{
+            System.setProperty(ARTIFACT_GENERATOR_CONFIG,configLoc);
+        }
+    }
+
+    @Test
+    public void testErrorWhenNoWidgetInConfig() throws IOException {
+        System.setProperty(ARTIFACT_GENERATOR_CONFIG,CONFIG_PATH+"Artifact-Generator1.properties");
+        loadConfig(ArtifactGenerationServiceTest.properties);
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+            readPayloadFromResource(inputArtifacts, VF_VMME_TEMPLATE_NO_SYSTEM_PROP_CONFIGURED_YML);
+
+            readPayloadFromResource(inputArtifacts, SERVICE_VMME_TEMPLATE_NO_SYSTEM_PROP_CONFIGURED_YML);
+
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+            GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
+
+            String assertMsg = ArtifactType.AAI.name() + ".model-version-id." + Widget.getWidget
+                (Widget.Type.SERVICE).getName();
+
+            Assert.assertEquals(false,data.getErrorData().isEmpty());
+            String errMsg = String.format(GENERATOR_AAI_CONFIGLPROP_NOT_FOUND,assertMsg);
+            Assert.assertEquals(data.getErrorData().get("AAI").get(0),errMsg);
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        } finally {
+            System.setProperty(ARTIFACT_GENERATOR_CONFIG, CONFIG_PATH + ARTIFACT_GENERATOR_PROPERTIES);
+            loadConfig(ArtifactGenerationServiceTest.properties);
+        }
+    }
+
+    @Test
+    public void testArtifactGenerationWithUpdatedUUIDInConfig() throws IOException {
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+            readPayloadFromResource(inputArtifacts, "vf_vmme_template_WithUpdatedUUIDInConfig.yml");
+
+            readPayloadFromResource(inputArtifacts, "service_vmme_template_WithUpdatedUUIDInConfig.yml");
+
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+            GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
+            List<ToscaTemplate> toscas = new LinkedList();
+            for (Artifact inputArtifact : inputArtifacts) {
+                toscas.add(getToscaModel(inputArtifact));
+            }
+            List<Artifact> resultData = data.getResultData();
+            Map<String, Model> outputArtifactMap = new HashMap<>();
+            ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap, resultData);
+            ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap, toscas);
+            testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+            System.setProperty(ARTIFACT_GENERATOR_CONFIG,CONFIG_PATH+"Artifact-Generator2.properties");
+            loadConfig(ArtifactGenerationServiceTest.properties);
+
+            List<ToscaTemplate> toscas2 = new LinkedList();
+            for (Artifact inputArtifact : inputArtifacts) {
+                toscas2.add(getToscaModel(inputArtifact));
+            }
+            GenerationData data2 = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
+            Map<String, Model> outputArtifactMap2 = new HashMap<>();
+            ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap2,
+                data2.getResultData());
+            ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap2, toscas2);
+            testResourceTosca(toscas2.iterator(), outputArtifactMap2);
+
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        } finally {
+            System.setProperty(ARTIFACT_GENERATOR_CONFIG,CONFIG_PATH + ARTIFACT_GENERATOR_PROPERTIES);
+            loadConfig(ArtifactGenerationServiceTest.properties);
+        }
+    }
+
+    @Test
+    public void testArtifactGenerationVerifyMandatoryParameterServiceVersion() {
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+            readPayloadFromResource(inputArtifacts, "vf_vmme_template_VerifyMandatoryParameterServiceVersion.yml");
+
+            readPayloadFromResource(inputArtifacts, "service_vmme_template_VerifyMandatoryParameterServiceVersion.yml");
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+
+            GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, new HashMap<String, String>());
+
+            Assert.assertEquals(data.getErrorData().isEmpty(),false);
+            Assert.assertEquals(data.getErrorData().get("AAI").get(0),
+                GeneratorConstants.GENERATOR_AAI_ERROR_MISSING_SERVICE_VERSION);
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+    }
+
+    @Test
+    public void testArtifactGenerationVerifyServiceVersionFormat() {
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+            readPayloadFromResource(inputArtifacts, "vf_vmme_template_VerifyServiceVersionFormat.yml");
+
+            readPayloadFromResource(inputArtifacts, "service_vmme_template_VerifyServiceVersionFormat.yml");
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+
+            additionalParams.put(AdditionalParams.ServiceVersion.getName(),"1");
+            GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
+            Assert.assertEquals(data.getErrorData().isEmpty(),false);
+            Assert.assertEquals(data.getErrorData().get("AAI").get(0),
+                GeneratorConstants.GENERATOR_AAI_INVALID_SERVICE_VERSION);
+
+            additionalParams.put(AdditionalParams.ServiceVersion.getName(),"0.1");
+            GenerationData data2 = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG,
+                additionalParams);
+            Assert.assertEquals(data2.getErrorData().isEmpty(),false);
+            Assert.assertEquals(data2.getErrorData().get("AAI").get(0),
+                GeneratorConstants.GENERATOR_AAI_INVALID_SERVICE_VERSION);
+
+            additionalParams.put(AdditionalParams.ServiceVersion.getName(),"0.0");
+            GenerationData data3 = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG,
+                additionalParams);
+            Assert.assertEquals(data3.getErrorData().isEmpty(),false);
+            Assert.assertEquals(data3.getErrorData().get("AAI").get(0),
+                GeneratorConstants.GENERATOR_AAI_INVALID_SERVICE_VERSION);
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        } finally{
+            additionalParams.put(AdditionalParams.ServiceVersion.getName(),"1.0");
+        }
+    }
+
+    @Test
+    public void testArtifactGenerationVerifyServiceVersion() {
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+            readPayloadFromResource(inputArtifacts, "vf_vmme_template_VerifyServiceVersion.yml");
+
+            readPayloadFromResource(inputArtifacts, "service_vmme_template_VerifyServiceVersion.yml");
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+            List<ToscaTemplate> toscas = new LinkedList();
+
+            additionalParams.put(AdditionalParams.ServiceVersion.getName(),"9.0");
+            GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
+
+            for (Artifact inputArtifact : inputArtifacts) {
+                toscas.add(getToscaModel(inputArtifact));
+            }
+            List<Artifact> resultData = data.getResultData();
+
+            Map<String, Model> outputArtifactMap = new HashMap<>();
+            ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap, resultData);
+            ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap, toscas);
+
+            testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+            Assert.assertEquals(5, data.getResultData().size());
+
+            removeMockArtifact(data.getResultData().iterator());
+
+            ArtifactGenerationServiceTest.validateName(data.getResultData());
+
+
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        } finally{
+            additionalParams.put(AdditionalParams.ServiceVersion.getName(),"1.0");
+        }
+    }
+
+
+    @Test
+    public void testArtifactGenerationVerifyResourceVersionFormat() {
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+            readPayloadFromResource(inputArtifacts, "vf_vmme_template_VerifyResourceVersionFormat.yml");
+
+            readPayloadFromResource(inputArtifacts, "service_vmme_template_VerifyResourceVersionFormat1.yml");
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+
+            List<ToscaTemplate> toscas = new LinkedList();
+            for (Artifact inputArtifact : inputArtifacts) {
+                toscas.add(getToscaModel(inputArtifact));
+            }
+
+            GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
+            Assert.assertEquals(data.getErrorData().isEmpty(),false);
+            Assert.assertEquals(data.getErrorData().get("AAI").get(0),
+                String.format(
+                    GeneratorConstants.GENERATOR_AAI_ERROR_INVALID_RESOURCE_VERSION_IN_SERVICE_TOSCA,
+                    toscas.get(0).getMetadata().get("UUID")));
+
+            inputArtifacts.remove(1);
+
+            readPayloadFromResource(inputArtifacts, "service_vmme_template_VerifyResourceVersionFormat2.yml");
+            GenerationData data2 = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG,
+                additionalParams);
+            Assert.assertEquals(data2.getErrorData().isEmpty(),false);
+            Assert.assertEquals(data2.getErrorData().get("AAI").get(0),
+                String.format(
+                    GeneratorConstants.GENERATOR_AAI_ERROR_INVALID_RESOURCE_VERSION_IN_SERVICE_TOSCA,
+                    toscas.get(0).getMetadata().get("UUID")));
+
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+    }
+
+    @Test
+    public void testArtifactGenerationVerifyMandatoryParameterResourceVersion() {
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+            readPayloadFromResource(inputArtifacts, "vf_vmme_template_VerifyMandatoryParameterResourceVersion.yml");
+
+            readPayloadFromResource(inputArtifacts, "service_vmme_template_VerifyMandatoryParameterResourceVersion.yml");
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+            List<ToscaTemplate> toscas = new LinkedList();
+            for (Artifact inputArtifact : inputArtifacts) {
+                toscas.add(getToscaModel(inputArtifact));
+            }
+
+            GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
+            Assert.assertEquals(data.getErrorData().isEmpty(),false);
+            Assert.assertEquals(data.getErrorData().get("AAI").get(0),String.format(
+                GeneratorConstants.GENERATOR_AAI_ERROR_NULL_RESOURCE_VERSION_IN_SERVICE_TOSCA,toscas.get(0).getMetadata().get("UUID")));
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+    }
+
+    @Test
+    public void testArtifactGenerationWithoutAllottedResource() {
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+
+            readPayloadFromResource(inputArtifacts, "service-ServiceWithAllottedResourceIpmux-template.yml");
+
+            readPayloadFromResource(inputArtifacts, "resource-AllottedResource-template_IpMux.yml");
+
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+            List<ToscaTemplate> toscas = new LinkedList();
+
+            for (Artifact inputArtifact : inputArtifacts) {
+                toscas.add(getToscaModel(inputArtifact));
+            }
+            GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
+
+            Assert.assertEquals(data.getErrorData().isEmpty(),false);
+            Assert.assertEquals(data.getErrorData().get("AAI").get(0),String.format
+                (GeneratorConstants.GENERATOR_AAI_PROVIDING_SERVICE_MISSING, toscas.get(1).getModelId()));
+
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+    }
+
+    @Test
+    public void testArtifactGenerationAllottedResourceIpmuxWithGroups() {
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+
+            readPayloadFromResource(inputArtifacts, "service-ServiceWithAllottedResourceIpmux-template_WithGroups.yml");
+
+            readPayloadFromResource(inputArtifacts, "resource-AllottedResource-template_IpMux_WithGroups.yml");
+
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+            List<ToscaTemplate> toscas = new LinkedList();
+
+            GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
+
+            for (Artifact inputArtifact : inputArtifacts) {
+                toscas.add(getToscaModel(inputArtifact));
+            }
+            List<Artifact> resultData = data.getResultData();
+
+            Map<String, Model> outputArtifactMap = new HashMap<>();
+            ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap, resultData);
+            ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap, toscas);
+            testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+            Assert.assertEquals(5, data.getResultData().size());
+
+            removeMockArtifact(data.getResultData().iterator());
+
+            ArtifactGenerationServiceTest.validateName(data.getResultData());
+
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+    }
+
+    @Test
+    public void testArtifactGenerationAllottedResourceIpmuxSameInvariantDiffVersion() {
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+
+            readPayloadFromResource(inputArtifacts, "service-ServiceWithAllottedResourcesIpMuxSameInvariant-template.yml");
+
+            readPayloadFromResource(inputArtifacts, "resource-AllottedResource1SameInvariant-IpMux-template.yml");
+
+            readPayloadFromResource(inputArtifacts, "resource-AllottedResource2SameInvariant-IpMux-template.yml");
+
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+            List<ToscaTemplate> toscas = new LinkedList();
+
+            GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
+
+            for (Artifact inputArtifact : inputArtifacts) {
+                toscas.add(getToscaModel(inputArtifact));
+            }
+            List<Artifact> resultData = data.getResultData();
+
+            Map<String, Model> outputArtifactMap = new HashMap<>();
+            ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap, resultData);
+            ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap, toscas);
+            testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+            Assert.assertEquals(5, data.getResultData().size());
+
+            removeMockArtifact(data.getResultData().iterator());
+
+            ArtifactGenerationServiceTest.validateName(data.getResultData());
+
+
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+    }
+
+    @Test
+    public void testArtifactGenerationAllottedResourceIpmuxSameInvariantSameVersion() {
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+
+            readPayloadFromResource(inputArtifacts, "service-ServiceWithAllottedResourcesIpMuxSameInvariantSameVers-template.yml");
+
+            readPayloadFromResource(inputArtifacts, "resource-AllottedResourceSameInvariantSameVers-IpMux-template.yml");
+
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+            List<ToscaTemplate> toscas = new LinkedList();
+
+            GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
+
+            for (Artifact inputArtifact : inputArtifacts) {
+                toscas.add(getToscaModel(inputArtifact));
+            }
+            List<Artifact> resultData = data.getResultData();
+
+            Map<String, Model> outputArtifactMap = new HashMap<>();
+            ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap, resultData);
+            ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap, toscas);
+            testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+            Assert.assertEquals(4, data.getResultData().size());
+
+            removeMockArtifact(data.getResultData().iterator());
+
+            ArtifactGenerationServiceTest.validateName(data.getResultData());
+
+
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+    }
+
+    @Test
+    public void testArtifactGenerationAllottedResourceWithIpMuxAndTunnelXConn() {
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+
+            readPayloadFromResource(inputArtifacts, "service-Allottedipmux-template.yml");
+
+            readPayloadFromResource(inputArtifacts, "resource-IpMuxDemux-template.yml");
+
+            readPayloadFromResource(inputArtifacts, "resource-TunnelXconn-template.yml");
+
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+            List<ToscaTemplate> toscas = new LinkedList();
+
+            GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
+
+            for (Artifact inputArtifact : inputArtifacts) {
+                toscas.add(getToscaModel(inputArtifact));
+            }
+            List<Artifact> resultData = data.getResultData();
+
+            Map<String, Model> outputArtifactMap = new HashMap<>();
+            ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap, resultData);
+            ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap, toscas);
+            testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+            Assert.assertEquals(5, data.getResultData().size());
+
+            removeMockArtifact(data.getResultData().iterator());
+
+            ArtifactGenerationServiceTest.validateName(data.getResultData());
+
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+    }
+
+    @Test
+    public void testArtifactGenerationAllottedResourceWithOutProvidingServiceId() {
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+
+            readPayloadFromResource(inputArtifacts, "service-SdWan-template_WithOutDepSerId.yml");
+
+            readPayloadFromResource(inputArtifacts, "resource-VhnfNonHeat-template_WithOutDepSerId.yml");
+
+            readPayloadFromResource(inputArtifacts, "resource-TunnelXconn-template_WithOutDepSerId.yml");
+
+            readPayloadFromResource(inputArtifacts, "resource-ServiceAdmin-template_WithOutDepSerId.yml");
+
+            readPayloadFromResource(inputArtifacts, "resource-IpMuxDemux-template_WithOutDepSerId.yml");
+
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+            List<ToscaTemplate> toscas = new LinkedList();
+            for (Artifact inputArtifact : inputArtifacts) {
+                toscas.add(getToscaModel(inputArtifact));
+            }
+
+            GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
+            Assert.assertEquals(data.getErrorData().isEmpty(),false);
+            Assert.assertEquals(data.getErrorData().get("AAI").get(0),String.format
+                (GeneratorConstants.GENERATOR_AAI_PROVIDING_SERVICE_METADATA_MISSING, toscas.get(2).getModelId()));
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+    }
+
+    @Test
+    public void testArtifactGenerationAllottedResourceWithVF() {
+        try {
+            List<Artifact> inputArtifacts = new ArrayList();
+
+            readPayloadFromResource(inputArtifacts, "service-SdWan-template_AllRes_VF.yml");
+
+            readPayloadFromResource(inputArtifacts, "resource-VhnfNonHeat-template_AllRes_VF.yml");
+
+            readPayloadFromResource(inputArtifacts, "resource-TunnelXconn-template_AllRes_VF.yml");
+
+            readPayloadFromResource(inputArtifacts, "resource-ServiceAdmin-template_AllRes_VF.yml");
+
+            readPayloadFromResource(inputArtifacts, "resource-IpMuxDemux-template_AllRes_VF.yml");
+
+            ArtifactGenerationServiceImpl obj = new ArtifactGenerationServiceImpl();
+            List<ToscaTemplate> toscas = new LinkedList();
+
+            GenerationData data = obj.generateArtifact(inputArtifacts, GENERATOR_CONFIG, additionalParams);
+            for (Artifact inputArtifact : inputArtifacts) {
+                toscas.add(getToscaModel(inputArtifact));
+            }
+            List<Artifact> resultData = data.getResultData();
+
+            Map<String, Model> outputArtifactMap = new HashMap<>();
+            ArtifactGenerationServiceTest.populateAAIGeneratedModelStore(outputArtifactMap, resultData);
+            ArtifactGenerationServiceTest.testServiceTosca(outputArtifactMap, toscas);
+            testResourceTosca(toscas.iterator(), outputArtifactMap);
+
+            Assert.assertEquals(7, data.getResultData().size());
+
+            removeMockArtifact(data.getResultData().iterator());
+
+            ArtifactGenerationServiceTest.validateName(data.getResultData());
+        } catch (Exception e) {
+            Assert.fail(e.getMessage());
+        }
+    }
+
+    public static void readPayload(List<Artifact> inputArtifacts,InputStream fis, String fileName) throws IOException {
+        byte[] payload = new byte[fis.available()];
+        fis.read(payload);
+        String checksum = GeneratorUtil.checkSum(payload);
+        byte[] encodedPayload = GeneratorUtil.encode(payload);
+        Artifact artifact = new Artifact(AAI_ARTIFACT_TYPE, AAI_ARTIFACT_GROUP_TYPE, checksum, encodedPayload);
+        artifact.setName(fileName);
+        artifact.setLabel(fileName);
+        artifact.setDescription(fileName);
+        inputArtifacts.add(artifact);
+    }
+
+
+    /**
+     * Get the tosca java model from the tosca input artifact
+     *
+     * @param input Input tosca file and its metadata information as {@link Artifact} object
+     * @return Translated {@link ToscaTemplate tosca} object
+     * @throws SecurityException
+     */
+    public static ToscaTemplate getToscaModel(Artifact input) {
+        byte[] decodedInput = GeneratorUtil.decoder(input.getPayload());
+        String checksum = GeneratorUtil.checkSum(decodedInput);
+        if (checksum.equals(input.getChecksum())) {
+            try {
+                return GeneratorUtil.translateTosca(new String(decodedInput), ToscaTemplate.class);
+            } catch (Exception e) {
+                throw new IllegalArgumentException(String.format(
+                    GeneratorConstants.GENERATOR_AAI_ERROR_INVALID_TOSCA, input.getName()));
+            }
+        } else {
+            throw new SecurityException(String.format(
+                GeneratorConstants.GENERATOR_AAI_ERROR_CHECKSUM_MISMATCH, input.getName()));
+        }
+    }
+
+    public static void removeMockArtifact(Iterator<Artifact> itr) {
+        while (itr.hasNext()){
+            if(itr.next().getType().equals("OTHER")){
+                itr.remove();
+            }
+        }
+    }
+
+    private void readPayloadFromResource(List<Artifact> inputArtifacts, String fileName) throws IOException {
+
+        try (InputStream fis = SampleJUnitTest.class.getResourceAsStream("/" + fileName)) {
+            readPayload(inputArtifacts, fis, fileName);
+        }
+    }
+}
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/CMAUI_VF.yaml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/CMAUI_VF.yaml
new file mode 100644
index 0000000..72bbca9
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/CMAUI_VF.yaml
@@ -0,0 +1,92 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: vMMSC VF Topology Template
+
+metadata:
+  invariantUUID: dd4f3d68-1223-4a97-127c-11ab729d4da2 # generated by ASDC
+  UUID: 2a14db52-5116-d3af-1240-1236221cab8d # generated by ASDC
+  name: CMAUI VF
+  description: CMAUI MMSC VF
+  type: VF
+  category: Mobility
+  subCategory: MMSC
+  vendor: Nokia
+  vendorVersion: 5.0.2.5.37
+
+  
+ # reference to template definitions
+imports:
+  - tosca_simple_profile_for_ecomp_1_0.yml
+  
+topology_template:
+  
+   # This section provides the parameters which OPENECOMP is not providing values to during instantiation.
+   # It is expected that node template parameters which are not mapped to the Inputs section recieve value from OPENECOMP
+   # during the orchestration
+
+  inputes: 
+    
+  node_templates:
+
+    vCMAUI: # vMMSC VFC
+      type: org.openecomp.resource.vfc.Generic
+
+      metadata:
+        invariantUUID: 0a258d08-2223-4a97-127c-11ab729d2bc3
+        UUID: 7214db52-1216-3aaf-1240-a236221ca404
+        version: 1.0
+        name: vMMC VFC
+        description:
+        type: VFC
+        category: Generic
+        subCategory: Generic_VFC
+        vendor: Nokia
+        vendorVersion: 6.0.2.14
+
+      properties:
+        vfc_ecomp_name: true
+        vfc_instance_name: # to be set by OPENECOMP during instantiation
+        vfc_type_tag:  # from HEAT ENV
+        vfc_description: vCMAUI VFC
+        vfc_image_name: cmaui-5.0.2.5_v37.qcow2 # from HEAT / HEAT ENV
+        vfc_availability_zone: 
+
+
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: cmaui_flavor # from HEAT ENV
+        scaling:
+          properties:
+            min_instances: 2
+            max_instances: 2
+
+    cmaui_oam:
+      type: org.openecomp.cp.OAM
+      
+      metadata:
+        invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+        UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: OAM CP
+        description: OAM CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_Info:
+          ip_address:  # provided by OPENECOMP (SDNC)
+      
+
+
+  policies:
+     # Placement policy
+    - mmsc_anti_affinity_placement_policy:
+      type: org.openecomp.policy.Placement
+
+      properties:
+        conatiner_type: compute
+        policy: anti_affinity
+
+      target: [ vMMSC ]
\ No newline at end of file
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/CMAUI_VFInvalidFormat.yaml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/CMAUI_VFInvalidFormat.yaml
new file mode 100644
index 0000000..72bbca9
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/CMAUI_VFInvalidFormat.yaml
@@ -0,0 +1,92 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: vMMSC VF Topology Template
+
+metadata:
+  invariantUUID: dd4f3d68-1223-4a97-127c-11ab729d4da2 # generated by ASDC
+  UUID: 2a14db52-5116-d3af-1240-1236221cab8d # generated by ASDC
+  name: CMAUI VF
+  description: CMAUI MMSC VF
+  type: VF
+  category: Mobility
+  subCategory: MMSC
+  vendor: Nokia
+  vendorVersion: 5.0.2.5.37
+
+  
+ # reference to template definitions
+imports:
+  - tosca_simple_profile_for_ecomp_1_0.yml
+  
+topology_template:
+  
+   # This section provides the parameters which OPENECOMP is not providing values to during instantiation.
+   # It is expected that node template parameters which are not mapped to the Inputs section recieve value from OPENECOMP
+   # during the orchestration
+
+  inputes: 
+    
+  node_templates:
+
+    vCMAUI: # vMMSC VFC
+      type: org.openecomp.resource.vfc.Generic
+
+      metadata:
+        invariantUUID: 0a258d08-2223-4a97-127c-11ab729d2bc3
+        UUID: 7214db52-1216-3aaf-1240-a236221ca404
+        version: 1.0
+        name: vMMC VFC
+        description:
+        type: VFC
+        category: Generic
+        subCategory: Generic_VFC
+        vendor: Nokia
+        vendorVersion: 6.0.2.14
+
+      properties:
+        vfc_ecomp_name: true
+        vfc_instance_name: # to be set by OPENECOMP during instantiation
+        vfc_type_tag:  # from HEAT ENV
+        vfc_description: vCMAUI VFC
+        vfc_image_name: cmaui-5.0.2.5_v37.qcow2 # from HEAT / HEAT ENV
+        vfc_availability_zone: 
+
+
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: cmaui_flavor # from HEAT ENV
+        scaling:
+          properties:
+            min_instances: 2
+            max_instances: 2
+
+    cmaui_oam:
+      type: org.openecomp.cp.OAM
+      
+      metadata:
+        invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+        UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: OAM CP
+        description: OAM CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_Info:
+          ip_address:  # provided by OPENECOMP (SDNC)
+      
+
+
+  policies:
+     # Placement policy
+    - mmsc_anti_affinity_placement_policy:
+      type: org.openecomp.policy.Placement
+
+      properties:
+        conatiner_type: compute
+        policy: anti_affinity
+
+      target: [ vMMSC ]
\ No newline at end of file
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/CMAUI_VFMissingVFModule.yaml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/CMAUI_VFMissingVFModule.yaml
new file mode 100644
index 0000000..72bbca9
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/CMAUI_VFMissingVFModule.yaml
@@ -0,0 +1,92 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: vMMSC VF Topology Template
+
+metadata:
+  invariantUUID: dd4f3d68-1223-4a97-127c-11ab729d4da2 # generated by ASDC
+  UUID: 2a14db52-5116-d3af-1240-1236221cab8d # generated by ASDC
+  name: CMAUI VF
+  description: CMAUI MMSC VF
+  type: VF
+  category: Mobility
+  subCategory: MMSC
+  vendor: Nokia
+  vendorVersion: 5.0.2.5.37
+
+  
+ # reference to template definitions
+imports:
+  - tosca_simple_profile_for_ecomp_1_0.yml
+  
+topology_template:
+  
+   # This section provides the parameters which OPENECOMP is not providing values to during instantiation.
+   # It is expected that node template parameters which are not mapped to the Inputs section recieve value from OPENECOMP
+   # during the orchestration
+
+  inputes: 
+    
+  node_templates:
+
+    vCMAUI: # vMMSC VFC
+      type: org.openecomp.resource.vfc.Generic
+
+      metadata:
+        invariantUUID: 0a258d08-2223-4a97-127c-11ab729d2bc3
+        UUID: 7214db52-1216-3aaf-1240-a236221ca404
+        version: 1.0
+        name: vMMC VFC
+        description:
+        type: VFC
+        category: Generic
+        subCategory: Generic_VFC
+        vendor: Nokia
+        vendorVersion: 6.0.2.14
+
+      properties:
+        vfc_ecomp_name: true
+        vfc_instance_name: # to be set by OPENECOMP during instantiation
+        vfc_type_tag:  # from HEAT ENV
+        vfc_description: vCMAUI VFC
+        vfc_image_name: cmaui-5.0.2.5_v37.qcow2 # from HEAT / HEAT ENV
+        vfc_availability_zone: 
+
+
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: cmaui_flavor # from HEAT ENV
+        scaling:
+          properties:
+            min_instances: 2
+            max_instances: 2
+
+    cmaui_oam:
+      type: org.openecomp.cp.OAM
+      
+      metadata:
+        invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+        UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: OAM CP
+        description: OAM CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_Info:
+          ip_address:  # provided by OPENECOMP (SDNC)
+      
+
+
+  policies:
+     # Placement policy
+    - mmsc_anti_affinity_placement_policy:
+      type: org.openecomp.policy.Placement
+
+      properties:
+        conatiner_type: compute
+        policy: anti_affinity
+
+      target: [ vMMSC ]
\ No newline at end of file
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/ECA_OAM_VF.yaml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/ECA_OAM_VF.yaml
new file mode 100644
index 0000000..2cbc0e9
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/ECA_OAM_VF.yaml
@@ -0,0 +1,217 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: vECA VF Topology Template
+
+metadata:
+  invariantUUID: 3d4f3d68-d3a3-4f52-127c-ab188c9d4da2 # generated by ASDC
+  UUID: a2c4dc32-9c16-a3df-d2c0-e5ab221c69f0 # generated by ASDC
+  name: vECA VF
+  description: |
+                        Performs intelligent adaptation of Multimedia Messages (MMs), and adaptation of individual media, 
+                        such as videos, audio files, images, animations, and text. Sits on the MM1 downlink path and performs
+                        optimization offline. It intercepts the entire media and completes the optimizations before sending
+                        the message to handsets.
+  type: VF
+  category: Mobility
+  subCategory: MMSC
+  vendor: Nokia
+  vendorVersion: 13
+
+  
+ # reference to template definitions
+imports:
+  - tosca_simple_profile_for_ecomp_1_0.yml
+  
+topology_template:
+  
+   # This section provides the parameters which OPENECOMP is not providing values to during instantiation.
+   # It is expected that node template parameters which are not mapped to the Inputs section recieve value from OPENECOMP
+   # during the orchestration
+
+  inputs: 
+    
+  node_templates:
+
+    vECA_OAM: # vECA OAM VFC
+      type: org.openecomp.resource.vfc.Generic
+
+      metadata:
+        invariantUUID: 12243d33-d3a3-4f42-770a-5710009d3baa
+        UUID: ab08dc12-0716-abcf-13c0-afd4111c69a0
+        version: 1.0
+        name: vECA_OAM VFC
+        description: ECA Management
+        type: VFC
+        category: Generic_VFC
+        subCategory: Generic_VFC
+        vendor: Nokia
+        vendorVersion: 13
+      
+      properties:
+        vfc_ecomp_name: true
+        vfc_instance_name: # to be set by OPENECOMP during instantiation
+        vfc_type_tag:  # from HEAT ENV
+        vfc_description: vECA_OAM VFC
+        vfc_image_name: eca-v13-release.qcow2 # from HEAT / HEAT ENV
+        vfc_availability_zone: 
+
+
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: eca_oam_flavor # from HEAT ENV
+        scaling:
+          properties:
+            min_instances: 2 # set by service designer
+            max_instances: 2 # set by service designer
+
+    vECA_ARB: # vECA ARB VFC
+      type: org.openecomp.resource.vfc.Generic
+
+      metadata:
+        invariantUUID: 0ab53d33-d3a3-4f42-770a-5710009d301a
+        UUID: 8808dc12-0716-abcf-23c0-afd4111c60d0
+        version: 1.0
+        name: vECA_ARB VFC
+        description: ECA Arbitrator
+        type: VFC
+        category: Generic_VFC
+        subCategory: Generic_VFC
+        vendor: Nokia
+        vendorVersion: 13
+      
+      properties:
+        vfc_ecomp_name: true
+        vfc_instance_name: # to be set by OPENECOMP during instantiation
+        vfc_type_tag:  # from HEAT ENV
+        vfc_description: vECA_ABR VFC
+        vfc_image_name: eca-v13-release.qcow2 # from HEAT / HEAT ENV
+        vfc_availability_zone: 
+
+
+      
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: eca_arb_flavor # from HEAT ENV
+        scaling:
+          properties:
+            min_instances: 1 # set by service designer
+            max_instances: 1 # set by service designer
+
+   #  Internal VF Connection Points (VFCs connection points)
+
+    eca_oam_oam:
+      type: org.openecomp.cp.OAM
+      
+      metadata:
+        invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+        UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    eca_oam_internal:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    eca_arb_oam:
+      type: org.openecomp.cp.OAM
+      
+      metadata:
+        invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+        UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: OAM CP
+        description: OAM CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      properties:
+        address_Info:
+          ip_address:  # provided by OPENECOMP (SDNC)
+
+
+    eca_arb_internal:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+  groups:
+
+    # VF Modules
+
+    VFModuleECA_OAM_Base:
+      type: org.openecomp.groups.VfModule
+
+      metadata:
+        vfModuleModelName: vECA::module-0
+        vfModuleModelInvariantUUID: 13aba10a-f788-492f-9ea7-7ff91dd05aaa
+        vfModuleModelUUID: 1230ed1e-4bc7-4fc0-ba7e-cc7af6da7000
+        vfModuleModelVersion: 1
+
+      properties:
+        vf_module_type: Base # set by service designer
+        vf_module_description: vECA Base VF Module # set by service designer
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+        volume_group: false # from HEAT / service Designer
+        artifacts: # HEAT Templates
+          - 099a6909-290f-4293-a347-736f11b8ff18
+          - 0db84f21-d298-4a4b-b11e-37b92a734066
+      
+      members:
+      - vECA_OAM
+      - vECA_ARB
+      - eca_arb_internal
+      - eca_arb_oam
+      - eca_oam_oam
+      - eca_oam_internal
+  policies:
+     # Placement policy
+    - mmsc_anti_affinity_placement_policy:
+      type: org.openecomp.policy.Placement
+
+      properties:
+        conatiner_type: compute
+        policy: anti_affinity
+
+      target: [vECA_OAM, vECA_ARB ]
\ No newline at end of file
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/ECA_OAM_VFInvalidFormat.yaml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/ECA_OAM_VFInvalidFormat.yaml
new file mode 100644
index 0000000..5ef3805
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/ECA_OAM_VFInvalidFormat.yaml
@@ -0,0 +1,217 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: vECA VF Topology Template
+
+metadata:
+  invariantUUID: 3d4f3d68-d3a3-4f52-127c-ab188c9d4da2 # generated by ASDC
+  UUID: a2c4dc32-9c16-a3df-d2c0-e5ab221c69f0 # generated by ASDC
+  name: vECA VF
+  description: |
+                        Performs intelligent adaptation of Multimedia Messages (MMs), and adaptation of individual media, 
+                        such as videos, audio files, images, animations, and text. Sits on the MM1 downlink path and performs
+                        optimization offline. It intercepts the entire media and completes the optimizations before sending
+                        the message to handsets.
+  type: VF
+  category: Mobility
+  subCategory: MMSC
+  vendor: Nokia
+  vendorVersion: 13
+
+  
+ # reference to template definitions
+imports:
+  - tosca_simple_profile_for_ecomp_1_0.yml
+  
+topology_template:
+  
+   # This section provides the parameters which OPENECOMP is not providing values to during instantiation.
+   # It is expected that node template parameters which are not mapped to the Inputs section recieve value from OPENECOMP
+   # during the orchestration
+
+  inputs: 
+    
+  node_templates:
+
+    vECA_OAM: # vECA OAM VFC
+      type: org.openecomp.resource.vfc.Generic
+
+      metadata:
+        invariantUUID: 12243d33-d3a3-4f42-770a-5710009d3baa
+        UUID: ab08dc12-0716-abcf-13c0-afd4111c69a0
+        version: 1.0
+        name: vECA_OAM VFC
+        description: ECA Management
+        type: VFC
+        category: Generic_VFC
+        subCategory: Generic_VFC
+        vendor: Nokia
+        vendorVersion: 13
+      
+      properties:
+        vfc_ecomp_name: true
+        vfc_instance_name: # to be set by OPENECOMP during instantiation
+        vfc_type_tag:  # from HEAT ENV
+        vfc_description: vECA_OAM VFC
+        vfc_image_name: eca-v13-release.qcow2 # from HEAT / HEAT ENV
+        vfc_availability_zone: 
+
+
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: eca_oam_flavor # from HEAT ENV
+        scaling:
+          properties:
+            min_instances: 2 # set by service designer
+            max_instances: 2 # set by service designer
+
+    vECA_ARB: # vECA ARB VFC
+      type: org.openecomp.resource.vfc.Generic
+
+      metadata:
+        invariantUUID: 0ab53d33-d3a3-4f42-770a-5710009d301a
+        UUID: 8808dc12-0716-abcf-23c0-afd4111c60d0
+        version: 1.0
+        name: vECA_ARB VFC
+        description: ECA Arbitrator
+        type: VFC
+        category: Generic_VFC
+        subCategory: Generic_VFC
+        vendor: Nokia
+        vendorVersion: 13
+      
+      properties:
+        vfc_ecomp_name: true
+        vfc_instance_name: # to be set by OPENECOMP during instantiation
+        vfc_type_tag:  # from HEAT ENV
+        vfc_description: vECA_ABR VFC
+        vfc_image_name: eca-v13-release.qcow2 # from HEAT / HEAT ENV
+        vfc_availability_zone: 
+
+
+      
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: eca_arb_flavor # from HEAT ENV
+        scaling:
+          properties:
+            min_instances: 1 # set by service designer
+            max_instances: 1 # set by service designer
+
+   #  Internal VF Connection Points (VFCs connection points)
+
+    eca_oam_oam:
+      type: org.openecomp.cp.OAM
+      
+      metadata:
+        invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+        UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    eca_oam_internal:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    eca_arb_oam:
+      type: org.openecomp.cp.OAM
+      
+      metadata:
+        invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+        UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: OAM CP
+        description: OAM CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      properties:
+        address_Info:
+          ip_address:  # provided by OPENECOMP (SDNC)
+
+
+    eca_arb_internal:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+  groups:
+
+    # VF Modules
+
+        VFModuleECA_OAM_Base:
+      type: org.openecomp.groups.VfModule
+
+      metadata:
+        vfModuleModelName: vECA::module-0
+        vfModuleModelInvariantUUID: 13aba10a-f788-492f-9ea7-7ff91dd05aaa
+        vfModuleModelUUID: 1230ed1e-4bc7-4fc0-ba7e-cc7af6da7000
+        vfModuleModelVersion: 1
+
+      properties:
+        vf_module_type: Base # set by service designer
+        vf_module_description: vECA Base VF Module # set by service designer
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+        volume_group: false # from HEAT / service Designer
+        artifacts: # HEAT Templates
+          - 099a6909-290f-4293-a347-736f11b8ff18
+          - 0db84f21-d298-4a4b-b11e-37b92a734066
+      
+      members:
+      - vECA_OAM
+      - vECA_ARB
+      - eca_arb_internal
+      - eca_arb_oam
+      - eca_oam_oam
+      - eca_oam_internal
+  policies:
+     # Placement policy
+    - mmsc_anti_affinity_placement_policy:
+      type: org.openecomp.policy.Placement
+
+      properties:
+        conatiner_type: compute
+        policy: anti_affinity
+
+      target: [vECA_OAM, vECA_ARB ]
\ No newline at end of file
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/ECA_OAM_VFMissingVFModule.yaml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/ECA_OAM_VFMissingVFModule.yaml
new file mode 100644
index 0000000..2cbc0e9
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/ECA_OAM_VFMissingVFModule.yaml
@@ -0,0 +1,217 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: vECA VF Topology Template
+
+metadata:
+  invariantUUID: 3d4f3d68-d3a3-4f52-127c-ab188c9d4da2 # generated by ASDC
+  UUID: a2c4dc32-9c16-a3df-d2c0-e5ab221c69f0 # generated by ASDC
+  name: vECA VF
+  description: |
+                        Performs intelligent adaptation of Multimedia Messages (MMs), and adaptation of individual media, 
+                        such as videos, audio files, images, animations, and text. Sits on the MM1 downlink path and performs
+                        optimization offline. It intercepts the entire media and completes the optimizations before sending
+                        the message to handsets.
+  type: VF
+  category: Mobility
+  subCategory: MMSC
+  vendor: Nokia
+  vendorVersion: 13
+
+  
+ # reference to template definitions
+imports:
+  - tosca_simple_profile_for_ecomp_1_0.yml
+  
+topology_template:
+  
+   # This section provides the parameters which OPENECOMP is not providing values to during instantiation.
+   # It is expected that node template parameters which are not mapped to the Inputs section recieve value from OPENECOMP
+   # during the orchestration
+
+  inputs: 
+    
+  node_templates:
+
+    vECA_OAM: # vECA OAM VFC
+      type: org.openecomp.resource.vfc.Generic
+
+      metadata:
+        invariantUUID: 12243d33-d3a3-4f42-770a-5710009d3baa
+        UUID: ab08dc12-0716-abcf-13c0-afd4111c69a0
+        version: 1.0
+        name: vECA_OAM VFC
+        description: ECA Management
+        type: VFC
+        category: Generic_VFC
+        subCategory: Generic_VFC
+        vendor: Nokia
+        vendorVersion: 13
+      
+      properties:
+        vfc_ecomp_name: true
+        vfc_instance_name: # to be set by OPENECOMP during instantiation
+        vfc_type_tag:  # from HEAT ENV
+        vfc_description: vECA_OAM VFC
+        vfc_image_name: eca-v13-release.qcow2 # from HEAT / HEAT ENV
+        vfc_availability_zone: 
+
+
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: eca_oam_flavor # from HEAT ENV
+        scaling:
+          properties:
+            min_instances: 2 # set by service designer
+            max_instances: 2 # set by service designer
+
+    vECA_ARB: # vECA ARB VFC
+      type: org.openecomp.resource.vfc.Generic
+
+      metadata:
+        invariantUUID: 0ab53d33-d3a3-4f42-770a-5710009d301a
+        UUID: 8808dc12-0716-abcf-23c0-afd4111c60d0
+        version: 1.0
+        name: vECA_ARB VFC
+        description: ECA Arbitrator
+        type: VFC
+        category: Generic_VFC
+        subCategory: Generic_VFC
+        vendor: Nokia
+        vendorVersion: 13
+      
+      properties:
+        vfc_ecomp_name: true
+        vfc_instance_name: # to be set by OPENECOMP during instantiation
+        vfc_type_tag:  # from HEAT ENV
+        vfc_description: vECA_ABR VFC
+        vfc_image_name: eca-v13-release.qcow2 # from HEAT / HEAT ENV
+        vfc_availability_zone: 
+
+
+      
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: eca_arb_flavor # from HEAT ENV
+        scaling:
+          properties:
+            min_instances: 1 # set by service designer
+            max_instances: 1 # set by service designer
+
+   #  Internal VF Connection Points (VFCs connection points)
+
+    eca_oam_oam:
+      type: org.openecomp.cp.OAM
+      
+      metadata:
+        invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+        UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    eca_oam_internal:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    eca_arb_oam:
+      type: org.openecomp.cp.OAM
+      
+      metadata:
+        invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+        UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: OAM CP
+        description: OAM CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      properties:
+        address_Info:
+          ip_address:  # provided by OPENECOMP (SDNC)
+
+
+    eca_arb_internal:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+  groups:
+
+    # VF Modules
+
+    VFModuleECA_OAM_Base:
+      type: org.openecomp.groups.VfModule
+
+      metadata:
+        vfModuleModelName: vECA::module-0
+        vfModuleModelInvariantUUID: 13aba10a-f788-492f-9ea7-7ff91dd05aaa
+        vfModuleModelUUID: 1230ed1e-4bc7-4fc0-ba7e-cc7af6da7000
+        vfModuleModelVersion: 1
+
+      properties:
+        vf_module_type: Base # set by service designer
+        vf_module_description: vECA Base VF Module # set by service designer
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+        volume_group: false # from HEAT / service Designer
+        artifacts: # HEAT Templates
+          - 099a6909-290f-4293-a347-736f11b8ff18
+          - 0db84f21-d298-4a4b-b11e-37b92a734066
+      
+      members:
+      - vECA_OAM
+      - vECA_ARB
+      - eca_arb_internal
+      - eca_arb_oam
+      - eca_oam_oam
+      - eca_oam_internal
+  policies:
+     # Placement policy
+    - mmsc_anti_affinity_placement_policy:
+      type: org.openecomp.policy.Placement
+
+      properties:
+        conatiner_type: compute
+        policy: anti_affinity
+
+      target: [vECA_OAM, vECA_ARB ]
\ No newline at end of file
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/ECA_OAM_VFOrphan.yaml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/ECA_OAM_VFOrphan.yaml
new file mode 100644
index 0000000..d27bc63
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/ECA_OAM_VFOrphan.yaml
@@ -0,0 +1,211 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: vECA VF Topology Template
+
+metadata:
+  invariantUUID: 3d4f3d68-d3a3-4f52-127c-ab188c9d4da2 # generated by ASDC
+  UUID: a2c4dc32-9c16-a3df-d2c0-e5ab221c69f0 # generated by ASDC
+  name: vECA VF
+  description: |
+                        Performs intelligent adaptation of Multimedia Messages (MMs), and adaptation of individual media, 
+                        such as videos, audio files, images, animations, and text. Sits on the MM1 downlink path and performs
+                        optimization offline. It intercepts the entire media and completes the optimizations before sending
+                        the message to handsets.
+  type: VF
+  category: Mobility
+  subCategory: MMSC
+  vendor: Nokia
+  vendorVersion: 13
+
+  
+ # reference to template definitions
+imports:
+  - tosca_simple_profile_for_ecomp_1_0.yml
+  
+topology_template:
+  
+   # This section provides the parameters which OPENECOMP is not providing values to during instantiation.
+   # It is expected that node template parameters which are not mapped to the Inputs section recieve value from OPENECOMP
+   # during the orchestration
+
+  inputs: 
+    
+  node_templates:
+
+    vECA_OAM: # vECA OAM VFC
+      type: org.openecomp.resource.vfc.Generic
+
+      metadata:
+        invariantUUID: 12243d33-d3a3-4f42-770a-5710009d3baa
+        UUID: ab08dc12-0716-abcf-13c0-afd4111c69a0
+        version: 1.0
+        name: vECA_OAM VFC
+        description: ECA Management
+        type: VFC
+        category: Generic_VFC
+        subCategory: Generic_VFC
+        vendor: Nokia
+        vendorVersion: 13
+      
+      properties:
+        vfc_ecomp_name: true
+        vfc_instance_name: # to be set by OPENECOMP during instantiation
+        vfc_type_tag:  # from HEAT ENV
+        vfc_description: vECA_OAM VFC
+        vfc_image_name: eca-v13-release.qcow2 # from HEAT / HEAT ENV
+        vfc_availability_zone: 
+
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: eca_oam_flavor # from HEAT ENV
+        scaling:
+          properties:
+            min_instances: 2 # set by service designer
+            max_instances: 2 # set by service designer
+
+    vECA_ARB: # vECA ARB VFC
+      type: org.openecomp.resource.vfc.Generic
+
+      metadata:
+        invariantUUID: 0ab53d33-d3a3-4f42-770a-5710009d301a
+        UUID: 8808dc12-0716-abcf-23c0-afd4111c60d0
+        version: 1.0
+        name: vECA_ARB VFC
+        description: ECA Arbitrator
+        type: VFC
+        category: Generic_VFC
+        subCategory: Generic_VFC
+        vendor: Nokia
+        vendorVersion: 13
+      
+      properties:
+        vfc_ecomp_name: true
+        vfc_instance_name: # to be set by OPENECOMP during instantiation
+        vfc_type_tag:  # from HEAT ENV
+        vfc_description: vECA_ABR VFC
+        vfc_image_name: eca-v13-release.qcow2 # from HEAT / HEAT ENV
+        vfc_availability_zone: 
+
+
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: eca_arb_flavor # from HEAT ENV
+        scaling:
+          properties:
+            min_instances: 1 # set by service designer
+            max_instances: 1 # set by service designer
+
+   #  Internal VF Connection Points (VFCs connection points)
+
+    eca_oam_oam:
+      type: org.openecomp.cp.OAM
+      
+      metadata:
+        invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+        UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+    eca_oam_internal:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+    eca_arb_oam:
+      type: org.openecomp.cp.OAM
+      
+      metadata:
+        invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+        UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: OAM CP
+        description: OAM CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      properties:
+        address_Info:
+          ip_address:  # provided by OPENECOMP (SDNC)
+
+
+    eca_arb_internal:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+  groups:
+
+    # VF Modules
+
+    VFModuleECA_OAM_Base:
+      type: org.openecomp.groups.VfModule
+
+      metadata:
+        vfModuleModelName: vECA::module-0
+        vfModuleModelInvariantUUID: 13aba10a-f788-492f-9ea7-7ff91dd05aaa
+        vfModuleModelUUID: 1230ed1e-4bc7-4fc0-ba7e-cc7af6da7000
+        vfModuleModelVersion: 1
+
+      properties:
+        vf_module_type: Base # set by service designer
+        vf_module_description: vECA Base VF Module # set by service designer
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+        volume_group: false # from HEAT / service Designer
+        artifacts: # HEAT Templates
+          - 099a6909-290f-4293-a347-736f11b8ff18
+          - 0db84f21-d298-4a4b-b11e-37b92a734066
+      
+      members:
+      - vECA_OAM
+      - vECA_ARB
+      - eca_arb_internal
+      - eca_arb_oam
+      - eca_oam_oam
+      - eca_oam_internal
+  policies:
+     # Placement policy
+    - mmsc_anti_affinity_placement_policy:
+      type: org.openecomp.policy.Placement
+
+      properties:
+        conatiner_type: compute
+        policy: anti_affinity
+
+      target: [vECA_OAM, vECA_ARB ]
\ No newline at end of file
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/MMSC_Sevice_07_25_16.yaml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/MMSC_Sevice_07_25_16.yaml
new file mode 100644
index 0000000..62daf34
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/MMSC_Sevice_07_25_16.yaml
@@ -0,0 +1,179 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: vMMSC Service Topology Template
+
+metadata:
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  name: vMMSC_Service
+  description: vMMSC Service
+  type: Service
+  category: Mobility
+  ecompNaming: false
+  homing: false
+
+ # reference to template definitions
+imports:
+  - tosca_simple_profile_for_ecomp_1_0.yml
+  - vmmsc_vf.yml
+  - veca_oam_vf.yml
+  - cmaui_vf.yml
+  - service_network.yml # 
+
+topology_template:
+  
+   # This section provides the parameters which OPENECOMP is not providing values to during instantiation.
+   # It is expected that node template parameters which are not mapped to the Inputs section recieve value from OPENECOMP
+   # during the orchestration
+
+  inputes: 
+    service_instance_name:
+      type: string
+      description: service instance name
+    service_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this service instance
+    vMMSC_init_instances:
+      type: integer
+      description: The number of instances to instantiate
+      constraints:
+        - in_range: [1, 5]
+    vECA_OAM_init_instances:
+      type: integer
+      description: The number of instances to instantiate
+      constraints:
+        - in_range: [1, 3]
+
+  node_templates:
+
+    vMMSC: # vMMSC VNF
+      type: org.openecomp.resource.vf.Generic
+
+      metadata:
+        invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+        UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        version: 1.0
+        name: vMMC VF
+        description: |
+                              Delivers messages composed of text, images, and other media types (for example audio and video) 
+                              in an operator's network. It is responsible for storing and handling incoming and outgoing Multimedia
+                              Messages (MMs); therefore, acting as an MMS Relay and MMS Server at the same time.
+        type: VF
+        category: Mobility
+        subCategory: MMC
+        vendor: Nokia
+        vendorVersion: 6.0.2.14
+
+      properties:
+        vf_ecomp_name: true
+        vf_instance_name: # to be set by OPENECOMP during instantiation
+        vf_homing: true
+        vf_deployment_node: # to be set by OPENECOMP during instantiation
+        min_instances: 1
+        max_instances: 5
+        init_instances:    # number of instances to initialize. This number can be in the range of min_instances and max_instances.
+                           # if no value provided use min_instances value.
+
+
+    vECA_OAM: # vECA VF
+      type: org.openecomp.resource.vf.Generic
+
+      metadata:
+        invariantUUID: 3d4f3d68-d3a3-4f52-127c-ab188c9d4da2 # generated by ASDC
+        UUID: a2c4dc32-9c16-a3df-d2c0-e5ab221c69f0 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: vECA VF
+        description: |
+                              Performs intelligent adaptation of Multimedia Messages (MMs), and adaptation of individual media, 
+                              such as videos, audio files, images, animations, and text. Sits on the MM1 downlink path and performs
+                              optimization offline. It intercepts the entire media and completes the optimizations before sending
+                              the message to handsets.
+        type: VF
+        category: Generic
+        resourceCategory: Mobility
+        subCategory: MMSC
+        vendor: Nokia
+        vendorVersion: 13
+      
+      properties:
+        vf_ecomp_name: true
+        vf_instance_name: # to be set by OPENECOMP during instantiation
+        vf_homing: true
+        vf_deployment_node: # to be set by OPENECOMP during instantiation
+        min_instances: 1
+        max_instances: 3
+
+
+
+    CMAUI: # CMAUI VF
+      type: org.openecomp.resource.vf.Generic
+
+      metadata:
+        invariantUUID: dd4f3d68-1223-4a97-127c-11ab729d4da2 # generated by ASDC
+        UUID: 2a14db52-5116-d3af-1240-1236221cab8d # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: CMAUI VF
+        description: CMAUI MMSC VF
+        type: VF
+        category: Generic
+        resourceCategory: Mobility
+        subCategory: MMSC
+        vendor: Nokia
+        vendorVersion: 5.0.2.5.37
+      
+      properties:
+        vf_ecomp_name: true
+        vf_instance_name: # to be set by OPENECOMP during instantiation
+        vf_homing: true
+        vf_deployment_node: # to be set by OPENECOMP during instantiation
+        min_instances: 1 
+        max_instances: 1
+
+
+
+    # service level network
+
+    eca_internal_net:
+      type: abc.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+        UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+        version: 1.0
+        name: ECA traffic network
+        description: ECA traffic network
+        type: VL
+        category: VL
+        vendor: Nokia
+
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input: network_deployment_node }
+        contrail_virtual_network:
+          network_name: # provided by OPENECOMP (SDNC)
+          route_targets: 13979:105719
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.32/24 # HEAT ENV
+          gateway_ip: 107.243.37.33 # HEAT ENV
+          start_ip: 107.243.37.35 # HEAT ENV
+          end_ip: 107.243.37.62 # HEAT ENV
+      capabilities:
+        virtual_linkable:
+          valid_source_types: org.openecomp.resource.cp.CP
+
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
\ No newline at end of file
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/MMSC_Sevice_07_25_16InvalidFormat.yaml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/MMSC_Sevice_07_25_16InvalidFormat.yaml
new file mode 100644
index 0000000..1df7c17
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/MMSC_Sevice_07_25_16InvalidFormat.yaml
@@ -0,0 +1,177 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: vMMSC Service Topology Template
+
+metadata:
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  name: vMMSC_Service
+  description: vMMSC Service
+  type: Service
+  category: Mobility
+  ecompNaming: false
+  homing: false
+
+ # reference to template definitions
+imports:
+  - tosca_simple_profile_for_ecomp_1_0.yml
+  - vmmsc_vf.yml
+  - veca_oam_vf.yml
+  - cmaui_vf.yml
+  - service_network.yml # 
+
+topology_template:
+  
+   # This section provides the parameters which OPENECOMP is not providing values to during instantiation.
+   # It is expected that node template parameters which are not mapped to the Inputs section recieve value from OPENECOMP
+   # during the orchestration
+
+  inputes: 
+    service_instance_name:
+      type: string
+      description: service instance name
+    service_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this service instance
+    vMMSC_init_instances:
+      type: integer
+      description: The number of instances to instantiate
+      constraints:
+        - in_range: [1, 5]
+    vECA_OAM_init_instances:
+      type: integer
+      description: The number of instances to instantiate
+      constraints:
+        - in_range: [1, 3]
+
+  node_templates:
+
+    vMMSC: # vMMSC VNF
+      type: org.openecomp.resource.vf.Generic
+
+      metadata:
+        invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+        UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        version: 1.0
+        name: vMMC VF
+        description: |
+                              Delivers messages composed of text, images, and other media types (for example audio and video) 
+                              in an operator's network. It is responsible for storing and handling incoming and outgoing Multimedia
+                              Messages (MMs); therefore, acting as an MMS Relay and MMS Server at the same time.
+        type: VF
+        category: Mobility
+        subCategory: MMC
+        vendor: Nokia
+        vendorVersion: 6.0.2.14
+
+      properties:
+        vf_ecomp_name: true
+        vf_instance_name: # to be set by OPENECOMP during instantiation
+        vf_homing: true
+        vf_deployment_node: # to be set by OPENECOMP during instantiation
+        min_instances: 1
+        max_instances: 5
+        init_instances:    # number of instances to initialize. This number can be in the range of min_instances and max_instances.
+                           # if no value provided use min_instances value.
+
+
+    vECA_OAM: # vECA VF
+      type: org.openecomp.resource.vf.Generic
+
+      metadata:
+        invariantUUID: 3d4f3d68-d3a3-4f52-127c-ab188c9d4da2 # generated by ASDC
+        UUID: a2c4dc32-9c16-a3df-d2c0-e5ab221c69f0 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: vECA VF
+        description: |
+                              Performs intelligent adaptation of Multimedia Messages (MMs), and adaptation of individual media, 
+                              such as videos, audio files, images, animations, and text. Sits on the MM1 downlink path and performs
+                              optimization offline. It intercepts the entire media and completes the optimizations before sending
+                              the message to handsets.
+        type: VF
+        category: Mobility
+        subCategory: MMSC
+        vendor: Nokia
+        vendorVersion: 13
+      
+      properties:
+        vf_ecomp_name: true
+        vf_instance_name: # to be set by OPENECOMP during instantiation
+        vf_homing: true
+        vf_deployment_node: # to be set by OPENECOMP during instantiation
+        min_instances: 1
+        max_instances: 3
+
+
+
+    CMAUI: # CMAUI VF
+      type: org.openecomp.resource.vf.Generic
+
+      metadata:
+        invariantUUID: dd4f3d68-1223-4a97-127c-11ab729d4da2 # generated by ASDC
+        UUID: 2a14db52-5116-d3af-1240-1236221cab8d # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: CMAUI VF
+        description: CMAUI MMSC VF
+        type: VF
+        category: Mobility
+        subCategory: MMSC
+        vendor: Nokia
+        vendorVersion: 5.0.2.5.37
+      
+      properties:
+        vf_ecomp_name: true
+        vf_instance_name: # to be set by OPENECOMP during instantiation
+        vf_homing: true
+        vf_deployment_node: # to be set by OPENECOMP during instantiation
+        min_instances: 1 
+        max_instances: 1
+
+
+
+    # service level network
+
+    eca_internal_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+        UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+        version: 1.0
+        name: ECA traffic network
+        description: ECA traffic network
+        type: VL
+        category: VL
+        vendor: Nokia
+
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input: network_deployment_node }
+        contrail_virtual_network:
+          network_name: # provided by OPENECOMP (SDNC)
+          route_targets: 13979:105719
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.32/24 # HEAT ENV
+          gateway_ip: 107.243.37.33 # HEAT ENV
+          start_ip: 107.243.37.35 # HEAT ENV
+          end_ip: 107.243.37.62 # HEAT ENV
+      capabilities:
+        virtual_linkable:
+          valid_source_types: org.openecomp.resource.cp.CP
+
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
\ No newline at end of file
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/MMSC_Sevice_07_25_16MissingVFModule.yaml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/MMSC_Sevice_07_25_16MissingVFModule.yaml
new file mode 100644
index 0000000..31d9520
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/MMSC_Sevice_07_25_16MissingVFModule.yaml
@@ -0,0 +1,177 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: vMMSC Service Topology Template
+
+metadata:
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  name: vMMSC_Service
+  description: vMMSC Service
+  type: Service
+  category: Mobility
+  ecompNaming: false
+  homing: false
+
+ # reference to template definitions
+imports:
+  - tosca_simple_profile_for_ecomp_1_0.yml
+  - vmmsc_vf.yml
+  - veca_oam_vf.yml
+  - cmaui_vf.yml
+  - service_network.yml # 
+
+topology_template:
+  
+   # This section provides the parameters which OPENECOMP is not providing values to during instantiation.
+   # It is expected that node template parameters which are not mapped to the Inputs section recieve value from OPENECOMP
+   # during the orchestration
+
+  inputes: 
+    service_instance_name:
+      type: string
+      description: service instance name
+    service_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this service instance
+    vMMSC_init_instances:
+      type: integer
+      description: The number of instances to instantiate
+      constraints:
+        - in_range: [1, 5]
+    vECA_OAM_init_instances:
+      type: integer
+      description: The number of instances to instantiate
+      constraints:
+        - in_range: [1, 3]
+
+  node_templates:
+
+    vMMSC: # vMMSC VNF
+      type: org.openecomp.resource.vf.Generic
+
+      metadata:
+        invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+        UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        version: 1.0
+        name: vMMC VF
+        description: |
+                              Delivers messages composed of text, images, and other media types (for example audio and video) 
+                              in an operator's network. It is responsible for storing and handling incoming and outgoing Multimedia
+                              Messages (MMs); therefore, acting as an MMS Relay and MMS Server at the same time.
+        type: VF
+        category: Mobility
+        subCategory: MMC
+        vendor: Nokia
+        vendorVersion: 6.0.2.14
+
+      properties:
+        vf_ecomp_name: true
+        vf_instance_name: # to be set by OPENECOMP during instantiation
+        vf_homing: true
+        vf_deployment_node: # to be set by OPENECOMP during instantiation
+        min_instances: 1
+        max_instances: 5
+        init_instances:    # number of instances to initialize. This number can be in the range of min_instances and max_instances.
+                           # if no value provided use min_instances value.
+
+
+    vECA_OAM: # vECA VF
+      type: org.openecomp.resource.vf.Generic
+
+      metadata:
+        invariantUUID: 3d4f3d68-d3a3-4f52-127c-ab188c9d4da2 # generated by ASDC
+        UUID: a2c4dc32-9c16-a3df-d2c0-e5ab221c69f0 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: vECA VF
+        description: |
+                              Performs intelligent adaptation of Multimedia Messages (MMs), and adaptation of individual media, 
+                              such as videos, audio files, images, animations, and text. Sits on the MM1 downlink path and performs
+                              optimization offline. It intercepts the entire media and completes the optimizations before sending
+                              the message to handsets.
+        type: VF
+        category: Mobility
+        subCategory: MMSC
+        vendor: Nokia
+        vendorVersion: 13
+      
+      properties:
+        vf_ecomp_name: true
+        vf_instance_name: # to be set by OPENECOMP during instantiation
+        vf_homing: true
+        vf_deployment_node: # to be set by OPENECOMP during instantiation
+        min_instances: 1
+        max_instances: 3
+
+
+
+    CMAUI: # CMAUI VF
+      type: org.openecomp.resource.vf.Generic
+
+      metadata:
+        invariantUUID: dd4f3d68-1223-4a97-127c-11ab729d4da2 # generated by ASDC
+        UUID: 2a14db52-5116-d3af-1240-1236221cab8d # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: CMAUI VF
+        description: CMAUI MMSC VF
+        type: VF
+        category: Mobility
+        subCategory: MMSC
+        vendor: Nokia
+        vendorVersion: 5.0.2.5.37
+      
+      properties:
+        vf_ecomp_name: true
+        vf_instance_name: # to be set by OPENECOMP during instantiation
+        vf_homing: true
+        vf_deployment_node: # to be set by OPENECOMP during instantiation
+        min_instances: 1 
+        max_instances: 1
+
+
+
+    # service level network
+
+    eca_internal_net:
+      type: abc.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+        UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+        version: 1.0
+        name: ECA traffic network
+        description: ECA traffic network
+        type: VL
+        category: VL
+        vendor: Nokia
+
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input: network_deployment_node }
+        contrail_virtual_network:
+          network_name: # provided by OPENECOMP (SDNC)
+          route_targets: 13979:105719
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.32/24 # HEAT ENV
+          gateway_ip: 107.243.37.33 # HEAT ENV
+          start_ip: 107.243.37.35 # HEAT ENV
+          end_ip: 107.243.37.62 # HEAT ENV
+      capabilities:
+        virtual_linkable:
+          valid_source_types: org.openecomp.resource.cp.CP
+
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
\ No newline at end of file
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/MMSC_VF.yaml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/MMSC_VF.yaml
new file mode 100644
index 0000000..7398e45
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/MMSC_VF.yaml
@@ -0,0 +1,976 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: vMMSC VF Topology Template
+
+metadata:
+  invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+  UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+  name: vMMC VF
+  description: |
+                        Delivers messages composed of text, images, and other media types (for example audio and video) 
+                        in an operator's network. It is responsible for storing and handling incoming and outgoing Multimedia
+                        Messages (MMs); therefore, acting as an MMS Relay and MMS Server at the same time.
+  type: VF
+  category: Mobility
+  subCategory: MMC
+  vendor: Nokia
+  vendorVersion: 6.0.2.14
+
+  
+ # reference to template definitions
+imports:
+  - tosca_simple_profile_for_ecomp_1_0.yml
+  
+topology_template:
+  
+   # This section provides the parameters which OPENECOMP is not providing values to during
+   # instantiation.
+   # It is expected that node template parameters which are not mapped to the Inputs section recieve value from OPENECOMP
+   # during the orchestration
+
+  inputs: 
+    
+  node_templates:
+
+    vMMSC: # vMMSC VFC
+      type: org.openecomp.resource.vfc.Generic
+
+      metadata:
+        invariantUUID: 673f8d08-2223-4a97-127c-11ab729d23bc
+        UUID: 2714db52-2116-a3af-1240-a236221ca004
+        version: 1.0
+        name: vMMC VFC
+        description:
+        type: VFC
+        category: Generic
+        subCategory: Generic_VFC
+        vendor: Nokia
+        vendorVersion: 6.0.2.14
+
+      properties:
+        vfc_ecomp_name: true
+        vfc_instance_name: # to be set by OPENECOMP during instantiation
+        vfc_type_tag:  # from HEAT ENV
+        vfc_description: vMMSC VFC
+        vfc_image_name: mmsc-6.0.2_v14.qcow2 # from HEAT / HEAT ENV
+        vfc_availability_zone: 
+
+
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: mmsc_flavor # from HEAT ENV
+        scaling:
+          properties:
+            min_instances: 5
+            max_instances: 5
+            initial_instance: 
+
+    vNEMS_FE: # vNEMS VFC
+      type: org.openecomp.resource.vfc.Generic
+
+      metadata:
+        invariantUUID: 673f8d08-2223-4a97-127c-11ab729d23bc
+        UUID: 2714db52-2116-a3af-1240-a236221ca004
+        version: 1.0
+        name: vNEMS_FE VFC
+        description: |
+                              Legacy support that makes it possible for subscribers without MMS-enabled phones to receive 
+                              multimedia messages (MMs) through a web or WAP interface.
+                              E-mail smart push that lets subscribers send and receive MMs to and from the Internet (MM3 interface).
+        type: VFC
+        category: Generic_VFC
+        subCategory: Generic_VFC
+        vendor: Nokia
+        vendorVersion: 2.1.2.44
+      
+      properties:
+        vfc_ecomp_name: true
+        vfc_instance_name: # to be set by OPENECOMP during instantiation
+        vfc_type_tag:  # from HEAT ENV
+        vfc_description: vNEMS_FE VFC
+        vfc_image_name: nems-2.1.2_v44.qcow2 # from HEAT / HEAT ENV
+        vfc_availability_zone: 
+
+
+      
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: nems_fe_flavor # from HEAT ENV
+        scaling:
+          properties:
+            min_instances: 2 # set by service designer
+            max_instances: 4 # set by service designer
+
+    vNEMS_BE: # vNEMS VFC
+      type: org.openecomp.resource.vfc.Generic
+
+      metadata:
+        invariantUUID: 673f8d08-2223-4a97-127c-11ab729d23bc
+        UUID: 2714db52-2116-a3af-1240-a236221ca004
+        version: 1.0
+        name: vNEMS_BE VFC
+        description: |
+                              Legacy support that makes it possible for subscribers without MMS-enabled phones to receive 
+                              multimedia messages (MMs) through a web or WAP interface.
+                              E-mail smart push that lets subscribers send and receive MMs to and from the Internet (MM3 interface).
+        type: VFC
+        category: Generic_VFC
+        subCategory: Generic_VFC
+        vendor: Nokia
+        vendorVersion: 2.1.2.44
+      
+      properties:
+        vfc_ecomp_name: true
+        vfc_instance_name: # to be set by OPENECOMP during instantiation
+        vfc_type_tag:  # from HEAT ENV
+        vfc_description: vNEMS_FE VFC
+        vfc_image_name: nems-2.1.2_v44.qcow2 # from HEAT / HEAT ENV
+        vfc_availability_zone: 
+
+
+      
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: nems_be_flavor # from HEAT ENV
+        scaling:
+          properties:
+            min_instances: 1 # set by service designer
+            max_instances: 2 # set by service designer
+
+    vECA_TRX: # vNEMS VFC
+      type: org.openecomp.resource.vfc.Generic
+
+      metadata:
+        invariantUUID: 673f8d08-2223-4a97-127c-11ab729d23bc
+        UUID: 2714db52-2116-a3af-1240-a236221ca004
+        version: 1.0
+        name: vECA_TRX VFC
+        description: Traffic handling
+        type: VFC
+        category: Generic_VFC
+        subCategory: Generic_VFC
+        vendor: Nokia
+        vendorVersion: 13
+      
+      properties:
+        vfc_ecomp_name: true
+        vfc_instance_name: # to be set by OPENECOMP during instantiation
+        vfc_type_tag:  # from HEAT ENV
+        vfc_description: vECA_TRX VFC
+        vfc_image_name: eca-v13-release.qcow2 # from HEAT / HEAT ENV
+        vfc_availability_zone: 
+
+
+      
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: eca_trx_flavor # from HEAT ENV
+        scaling:
+          properties:
+            min_instances: 20 # set by service designer
+            max_instances: 20 # set by service designer
+
+    vLB: # F5 VFC
+      type: org.openecomp.resource.vfc.Generic
+
+      metadata:
+        invariantUUID: 673f8d08-2223-4a97-127c-11ab729d23bc
+        UUID: 2714db52-2116-a3af-1240-a236221ca004
+        version: 1.0
+        name: F5 LB VFC
+        description: Load Balancer
+        type: VFC
+        category: Generic
+        subCategory: Generic_VFC
+        vendor: F5 Networks
+        vendorVersion: 11.5.3.163
+
+      properties:
+        vfc_ecomp_name: true
+        vfc_instance_name: # to be set by OPENECOMP during instantiation
+        vfc_type_tag:  # from HEAT ENV
+        vfc_description: F5 VFC
+        vfc_image_name: F5-11_5_3-EngHF-34_163.qcow2 # from HEAT / HEAT ENV
+        vfc_availability_zone: 
+
+
+
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: bigip_flavor # from HEAT ENV
+        scaling:
+          properties:
+            min_instances: 2
+            max_instances: 2
+
+   #  Internal VF Connection Points (VFCs connection points)
+
+    mmsc_oam: # external OAM CP to mobility OAM network
+      type: org.openecomp.cp.OAM
+      
+      metadata:
+        invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+        UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: OAM CP
+        description: OAM CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_Info:
+          ip_address:  # provided by OPENECOMP (SDNC)
+      
+
+    
+    mmsc_traffic:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    nems_fe_oam: # external OAM CP to mobility OAM network
+      type: org.openecomp.cp.OAM
+      
+      metadata:
+        invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+        UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: OAM CP
+        description: OAM CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_Info:
+          ip_address:  # provided by OPENECOMP (SDNC)
+      
+
+
+    nems_fe_internal:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    nems_fe_imap:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    nems_fe_web:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    nems_fe_traffic:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    nems_be_oam: # external OAM CP to mobility OAM network
+      type: org.openecomp.cp.OAM
+      
+      metadata:
+        invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+        UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: OAM CP
+        description: OAM CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      properties:
+        address_Info:
+          ip_address:  # provided by OPENECOMP (SDNC)
+
+
+    nems_be_internal:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    nems_be_imap:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    eca_trx_oam: # external OAM CP to mobility OAM network
+      type: org.openecomp.cp.OAM
+      
+      metadata:
+        invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+        UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: OAM CP
+        description: OAM CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_Info:
+          ip_address:  # provided by OPENECOMP (SDNC)
+      
+
+
+    eca_trx_internal:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    eca_trx_traffic:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    lb_ha:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    lb_mmsc_traffic:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    lb_nems_traffic:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    lb_nems_web:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    lb_eca_traffic:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    lb_oam: # external OAM CP to mobility OAM network
+      type: org.openecomp.cp.OAM
+      
+      metadata:
+        invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+        UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: OAM CP
+        description: OAM CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_Info:
+          ip_address:  # provided by OPENECOMP (SDNC)
+      
+
+
+    lb_dmz_protected: # external CP to mobility DMZ protected network
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    lb_core_direct: # external CP to mobility core direct network
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    # Intra-VF Virtual Links (Networks)
+  
+    mmsc_traffic_net:
+      type: org.openecomp.resource.vl.VL
+
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: MMSC traffic network
+        description: mmsc traffic network
+        type: VL
+        category: VL
+        vendor: Nokia
+      properties:
+        network_type: Tenant_Layer_3
+        network_role: Intra-service
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input: network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 169.253.0.0/17 # HEAT ENV
+          gateway_ip: 169.253.0.3 # HEAT ENV
+          dhcp_enabled: false # HEAT ENV
+      capabilities:
+        virtual_linkable:
+          valid_source_types: org.openecomp.resource.cp.CP
+
+    nems_imap_net:
+      type: org.openecomp.resource.vl.VL
+
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: NEMS IMAP network
+        description: NEMS internal IMAP network
+        type: VL
+        category: VL
+        vendor: Nokia
+      
+      properties:
+        network_type: Tenant_Layer_3
+        network_role: Intra-service
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input: network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 169.253.0.0/17 # HEAT ENV
+          gateway_ip: 169.253.0.3 # HEAT ENV
+          dhcp_enabled: false # HEAT ENV
+      
+      capabilities:
+        virtual_linkable:
+          valid_source_types: org.openecomp.resource.cp.CP
+
+    nems_internal_net:
+      type: org.openecomp.resource.vl.VL
+
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: NEMS internal traffic network
+        description: NEMS internal traffic network
+        type: VL
+        category: VL
+        vendor: Nokia
+
+      properties:
+        network_type: Tenant_Layer_3
+        network_role: Intra-service
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input: network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 169.253.0.0/17 # HEAT ENV
+          gateway_ip: 169.253.0.3 # HEAT ENV
+          dhcp_enabled: false # HEAT ENV
+      
+      capabilities:
+        virtual_linkable:
+          valid_source_types: org.openecomp.resource.cp.CP
+
+    nems_web_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: NEMS web network
+        description: nems web nwtwork
+        type: VL
+        category: VL
+        vendor: Nokia
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input: network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 169.255.0.0/17 # HEAT ENV
+          gateway_ip: 169.255.0.3 # HEAT ENV
+          dhcp_enabled: false # HEAT ENV
+      capabilities:
+        virtual_linkable:
+          valid_source_types: org.openecomp.resource.cp.CP
+
+    nems_traffic_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: NEMS traffic network
+        description: NEMS traffic network
+        type: VL
+        category: VL
+        vendor: Nokia
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input: network_deployment_node }
+        contrail_virtual_network:
+          network_name: # provided by OPENECOMP (SDNC)
+          route_targets: 13979:105717
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.0/27 # HEAT ENV
+          gateway_ip: 107.243.37.1 # HEAT ENV
+          start_ip: 107.243.37.3 # HEAT ENV
+          end_ip: 107.243.37.30 # HEAT ENV
+      capabilities:
+        virtual_linkable:
+          valid_source_types: org.openecomp.resource.cp.CP
+
+    eca_traffic_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: ECA traffic network
+        description: ECA traffic network
+        type: VL
+        category: VL
+        vendor: Nokia
+
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input: network_deployment_node }
+        contrail_virtual_network:
+          network_name: # provided by OPENECOMP (SDNC)
+          route_targets: 13979:105719
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.32/24 # HEAT ENV
+          gateway_ip: 107.243.37.33 # HEAT ENV
+          start_ip: 107.243.37.35 # HEAT ENV
+          end_ip: 107.243.37.62 # HEAT ENV
+      capabilities:
+        virtual_linkable:
+          valid_source_types: org.openecomp.resource.cp.CP
+
+    eca_internal_net:
+      type: org.openecomp.resource.vl.VL
+
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: ECA internal traffic network
+        description: ECA internal traffic network
+        type: VL
+        category: VL
+        vendor: Nokia
+
+      properties:
+        network_type: Tenant_Layer_3
+        network_role: Intra-service
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input: network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 169.253.0.0/17 # HEAT ENV
+          gateway_ip: 169.253.0.3 # HEAT ENV
+          dhcp_enabled: false # HEAT ENV
+      
+      capabilities:
+        virtual_linkable:
+          valid_source_types: org.openecomp.resource.cp.CP # service level network
+
+    lb_ha_net:
+      type: org.openecomp.resource.vl.VL
+
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: LB HA network
+        description: LB sync network
+        type: VL
+        category: VL
+        vendor: Nokia
+      properties:
+        network_type: Tenant_Layer_3
+        network_role: Intra-service
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input: network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 169.253.0.0/17 # HEAT ENV
+          gateway_ip: 169.253.0.3 # HEAT ENV
+          dhcp_enabled: false # HEAT ENV
+      capabilities:
+        virtual_linkable:
+          valid_source_types: org.openecomp.resource.cp.CP
+
+
+  groups:
+
+    # Server Groups for applying placement policy
+    LbGroup:
+      type: tosca.groups.Root
+      members: [vLB]
+
+    mmscGroup:
+      type: tosca.groups.Root
+      members: [vMMSC]
+
+    nemas_feGroup:
+      type: tosca.groups.Root
+      members: [vNEMS_FE]
+
+    eca_trxGroup:
+      type: tosca.groups.Root
+      members: [vECA_TRX]
+    
+    # VF Modules
+    VFModuleMMSC_Expansion:
+      type: org.openecomp.groups.VfModule
+
+      metadata:
+        vfModuleModelName: vMMSC::module-1
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelUUID: b020dd1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+
+      properties:
+        vf_module_type: Expansion # set by service designer
+        vf_module_description: vMMSC growth unit # set by service designer
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+        volume_group: false # from HEAT / service Designer
+        artifacts: # HEAT Templates
+          - 099a6909-290f-4293-a347-736f11b8ff18
+          - 0db84f21-d298-4a4b-b11e-37b92a734066
+      
+      members:
+      - vMMSC
+      - vNEMS_FE
+      - vNEMS_BE
+      - vECA_TRX
+      - vLB
+      - mmsc_oam
+      - mmsc_traffic
+      - nems_fe_web
+      - mmsc_traffic_net
+      - nems_imap_net
+      - nems_internal_net
+      
+
+  policies:
+     # Autoscaling policy
+    - mmsc_autoscale_policy:
+      type: org.openecomp.policy.Autoscaling
+
+      properties:
+        min_instances: 1
+        max_instances: 4
+        increment: 1
+        factor: bandwidth
+        threshold: 5 Gpbs
+
+      target: [ VFModuleMMSC_Expansion ]
+
+   # Placement policy
+    - mmsc_anti_affinity_placement_policy:
+      type: org.openecomp.policy.Placement
+
+      properties:
+        conatiner_type: compute
+        policy: anti_affinity
+
+      target: [ LbGroup, mmscGroup, nemas_feGroup, eca_trxGroup, eca_oamGroup, cmauiGroup ]
\ No newline at end of file
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/MMSC_VFInvalidFormat.yaml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/MMSC_VFInvalidFormat.yaml
new file mode 100644
index 0000000..4e99ade
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/MMSC_VFInvalidFormat.yaml
@@ -0,0 +1,975 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: vMMSC VF Topology Template
+
+metadata:
+  invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+  UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+  name: vMMC VF
+  description: |
+                        Delivers messages composed of text, images, and other media types (for example audio and video) 
+                        in an operator's network. It is responsible for storing and handling incoming and outgoing Multimedia
+                        Messages (MMs); therefore, acting as an MMS Relay and MMS Server at the same time.
+  type: VF
+  category: Mobility
+  subCategory: MMC
+  vendor: Nokia
+  vendorVersion: 6.0.2.14
+
+  
+ # reference to template definitions
+imports:
+  - tosca_simple_profile_for_ecomp_1_0.yml
+  
+topology_template:
+  
+   # This section provides the parameters which OPENECOMP is not providing values to during instantiation.
+   # It is expected that node template parameters which are not mapped to the Inputs section recieve value from OPENECOMP
+   # during the orchestration
+
+  inputs: 
+    
+  node_templates:
+
+    vMMSC: # vMMSC VFC
+      type: org.openecomp.resource.vfc.Generic
+
+      metadata:
+        invariantUUID: 673f8d08-2223-4a97-127c-11ab729d23bc
+        UUID: 2714db52-2116-a3af-1240-a236221ca004
+        version: 1.0
+        name: vMMC VFC
+        description:
+        type: VFC
+        category: Generic
+        subCategory: Generic_VFC
+        vendor: Nokia
+        vendorVersion: 6.0.2.14
+
+      properties:
+        vfc_ecomp_name: true
+        vfc_instance_name: # to be set by OPENECOMP during instantiation
+        vfc_type_tag:  # from HEAT ENV
+        vfc_description: vMMSC VFC
+        vfc_image_name: mmsc-6.0.2_v14.qcow2 # from HEAT / HEAT ENV
+        vfc_availability_zone: 
+
+
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: mmsc_flavor # from HEAT ENV
+        scaling:
+          properties:
+            min_instances: 5
+            max_instances: 5
+            initial_instance: 
+
+    vNEMS_FE: # vNEMS VFC
+      type: org.openecomp.resource.vfc.Generic
+
+      metadata:
+        invariantUUID: 673f8d08-2223-4a97-127c-11ab729d23bc
+        UUID: 2714db52-2116-a3af-1240-a236221ca004
+        version: 1.0
+        name: vNEMS_FE VFC
+        description: |
+                              Legacy support that makes it possible for subscribers without MMS-enabled phones to receive 
+                              multimedia messages (MMs) through a web or WAP interface.
+                              E-mail smart push that lets subscribers send and receive MMs to and from the Internet (MM3 interface).
+        type: VFC
+        category: Generic_VFC
+        subCategory: Generic_VFC
+        vendor: Nokia
+        vendorVersion: 2.1.2.44
+      
+      properties:
+        vfc_ecomp_name: true
+        vfc_instance_name: # to be set by OPENECOMP during instantiation
+        vfc_type_tag:  # from HEAT ENV
+        vfc_description: vNEMS_FE VFC
+        vfc_image_name: nems-2.1.2_v44.qcow2 # from HEAT / HEAT ENV
+        vfc_availability_zone: 
+
+
+      
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: nems_fe_flavor # from HEAT ENV
+        scaling:
+          properties:
+            min_instances: 2 # set by service designer
+            max_instances: 4 # set by service designer
+
+    vNEMS_BE: # vNEMS VFC
+      type: org.openecomp.resource.vfc.Generic
+
+      metadata:
+        invariantUUID: 673f8d08-2223-4a97-127c-11ab729d23bc
+        UUID: 2714db52-2116-a3af-1240-a236221ca004
+        version: 1.0
+        name: vNEMS_BE VFC
+        description: |
+                              Legacy support that makes it possible for subscribers without MMS-enabled phones to receive 
+                              multimedia messages (MMs) through a web or WAP interface.
+                              E-mail smart push that lets subscribers send and receive MMs to and from the Internet (MM3 interface).
+        type: VFC
+        category: Generic_VFC
+        subCategory: Generic_VFC
+        vendor: Nokia
+        vendorVersion: 2.1.2.44
+      
+      properties:
+        vfc_ecomp_name: true
+        vfc_instance_name: # to be set by OPENECOMP during instantiation
+        vfc_type_tag:  # from HEAT ENV
+        vfc_description: vNEMS_FE VFC
+        vfc_image_name: nems-2.1.2_v44.qcow2 # from HEAT / HEAT ENV
+        vfc_availability_zone: 
+
+
+      
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: nems_be_flavor # from HEAT ENV
+        scaling:
+          properties:
+            min_instances: 1 # set by service designer
+            max_instances: 2 # set by service designer
+
+    vECA_TRX: # vNEMS VFC
+      type: org.openecomp.resource.vfc.Generic
+
+      metadata:
+        invariantUUID: 673f8d08-2223-4a97-127c-11ab729d23bc
+        UUID: 2714db52-2116-a3af-1240-a236221ca004
+        version: 1.0
+        name: vECA_TRX VFC
+        description: Traffic handling
+        type: VFC
+        category: Generic_VFC
+        subCategory: Generic_VFC
+        vendor: Nokia
+        vendorVersion: 13
+      
+      properties:
+        vfc_ecomp_name: true
+        vfc_instance_name: # to be set by OPENECOMP during instantiation
+        vfc_type_tag:  # from HEAT ENV
+        vfc_description: vECA_TRX VFC
+        vfc_image_name: eca-v13-release.qcow2 # from HEAT / HEAT ENV
+        vfc_availability_zone: 
+
+
+      
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: eca_trx_flavor # from HEAT ENV
+        scaling:
+          properties:
+            min_instances: 20 # set by service designer
+            max_instances: 20 # set by service designer
+
+    vLB: # F5 VFC
+      type: org.openecomp.resource.vfc.Generic
+
+      metadata:
+        invariantUUID: 673f8d08-2223-4a97-127c-11ab729d23bc
+        UUID: 2714db52-2116-a3af-1240-a236221ca004
+        version: 1.0
+        name: F5 LB VFC
+        description: Load Balancer
+        type: VFC
+        category: Generic
+        subCategory: Generic_VFC
+        vendor: F5 Networks
+        vendorVersion: 11.5.3.163
+
+      properties:
+        vfc_ecomp_name: true
+        vfc_instance_name: # to be set by OPENECOMP during instantiation
+        vfc_type_tag:  # from HEAT ENV
+        vfc_description: F5 VFC
+        vfc_image_name: F5-11_5_3-EngHF-34_163.qcow2 # from HEAT / HEAT ENV
+        vfc_availability_zone: 
+
+
+
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: bigip_flavor # from HEAT ENV
+        scaling:
+          properties:
+            min_instances: 2
+            max_instances: 2
+
+   #  Internal VF Connection Points (VFCs connection points)
+
+    mmsc_oam: # external OAM CP to mobility OAM network
+      type: org.openecomp.cp.OAM
+      
+      metadata:
+        invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+        UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: OAM CP
+        description: OAM CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_Info:
+          ip_address:  # provided by OPENECOMP (SDNC)
+      
+
+    
+    mmsc_traffic:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    nems_fe_oam: # external OAM CP to mobility OAM network
+      type: org.openecomp.cp.OAM
+      
+      metadata:
+        invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+        UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: OAM CP
+        description: OAM CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_Info:
+          ip_address:  # provided by OPENECOMP (SDNC)
+      
+
+
+    nems_fe_internal:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    nems_fe_imap:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    nems_fe_web:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    nems_fe_traffic:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    nems_be_oam: # external OAM CP to mobility OAM network
+      type: org.openecomp.cp.OAM
+      
+      metadata:
+        invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+        UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: OAM CP
+        description: OAM CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      properties:
+        address_Info:
+          ip_address:  # provided by OPENECOMP (SDNC)
+
+
+    nems_be_internal:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    nems_be_imap:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    eca_trx_oam: # external OAM CP to mobility OAM network
+      type: org.openecomp.cp.OAM
+      
+      metadata:
+        invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+        UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: OAM CP
+        description: OAM CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_Info:
+          ip_address:  # provided by OPENECOMP (SDNC)
+      
+
+
+    eca_trx_internal:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    eca_trx_traffic:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    lb_ha:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    lb_mmsc_traffic:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    lb_nems_traffic:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    lb_nems_web:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    lb_eca_traffic:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    lb_oam: # external OAM CP to mobility OAM network
+      type: org.openecomp.cp.OAM
+      
+      metadata:
+        invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+        UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: OAM CP
+        description: OAM CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_Info:
+          ip_address:  # provided by OPENECOMP (SDNC)
+      
+
+
+    lb_dmz_protected: # external CP to mobility DMZ protected network
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    lb_core_direct: # external CP to mobility core direct network
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    # Intra-VF Virtual Links (Networks)
+  
+    mmsc_traffic_net:
+      type: org.openecomp.resource.vl.VL
+
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: MMSC traffic network
+        description: mmsc traffic network
+        type: VL
+        category: VL
+        vendor: Nokia
+      properties:
+        network_type: Tenant_Layer_3
+        network_role: Intra-service
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input: network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 169.253.0.0/17 # HEAT ENV
+          gateway_ip: 169.253.0.3 # HEAT ENV
+          dhcp_enabled: false # HEAT ENV
+      capabilities:
+        virtual_linkable:
+          valid_source_types: org.openecomp.resource.cp.CP  
+
+    nems_imap_net:
+      type: org.openecomp.resource.vl.VL
+
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: NEMS IMAP network
+        description: NEMS internal IMAP network
+        type: VL
+        category: VL
+        vendor: Nokia
+      
+      properties:
+        network_type: Tenant_Layer_3
+        network_role: Intra-service
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input: network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 169.253.0.0/17 # HEAT ENV
+          gateway_ip: 169.253.0.3 # HEAT ENV
+          dhcp_enabled: false # HEAT ENV
+      
+      capabilities:
+        virtual_linkable:
+          valid_source_types: org.openecomp.resource.cp.CP
+
+    nems_internal_net:
+      type: org.openecomp.resource.vl.VL
+
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: NEMS internal traffic network
+        description: NEMS internal traffic network
+        type: VL
+        category: VL
+        vendor: Nokia
+
+      properties:
+        network_type: Tenant_Layer_3
+        network_role: Intra-service
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input: network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 169.253.0.0/17 # HEAT ENV
+          gateway_ip: 169.253.0.3 # HEAT ENV
+          dhcp_enabled: false # HEAT ENV
+      
+      capabilities:
+        virtual_linkable:
+          valid_source_types: org.openecomp.resource.cp.CP
+
+    nems_web_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: NEMS web network
+        description: nems web nwtwork
+        type: VL
+        category: VL
+        vendor: Nokia
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input: network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 169.255.0.0/17 # HEAT ENV
+          gateway_ip: 169.255.0.3 # HEAT ENV
+          dhcp_enabled: false # HEAT ENV
+      capabilities:
+        virtual_linkable:
+          valid_source_types: org.openecomp.resource.cp.CP
+
+    nems_traffic_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: NEMS traffic network
+        description: NEMS traffic network
+        type: VL
+        category: VL
+        vendor: Nokia
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input: network_deployment_node }
+        contrail_virtual_network:
+          network_name: # provided by OPENECOMP (SDNC)
+          route_targets: 13979:105717
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.0/27 # HEAT ENV
+          gateway_ip: 107.243.37.1 # HEAT ENV
+          start_ip: 107.243.37.3 # HEAT ENV
+          end_ip: 107.243.37.30 # HEAT ENV
+      capabilities:
+        virtual_linkable:
+          valid_source_types: org.openecomp.resource.cp.CP
+
+    eca_traffic_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: ECA traffic network
+        description: ECA traffic network
+        type: VL
+        category: VL
+        vendor: Nokia
+
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input: network_deployment_node }
+        contrail_virtual_network:
+          network_name: # provided by OPENECOMP (SDNC)
+          route_targets: 13979:105719
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.32/24 # HEAT ENV
+          gateway_ip: 107.243.37.33 # HEAT ENV
+          start_ip: 107.243.37.35 # HEAT ENV
+          end_ip: 107.243.37.62 # HEAT ENV
+      capabilities:
+        virtual_linkable:
+          valid_source_types: org.openecomp.resource.cp.CP
+
+    eca_internal_net:
+      type: org.openecomp.resource.vl.VL
+
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: ECA internal traffic network
+        description: ECA internal traffic network
+        type: VL
+        category: VL
+        vendor: Nokia
+
+      properties:
+        network_type: Tenant_Layer_3
+        network_role: Intra-service
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input: network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 169.253.0.0/17 # HEAT ENV
+          gateway_ip: 169.253.0.3 # HEAT ENV
+          dhcp_enabled: false # HEAT ENV
+      
+      capabilities:
+        virtual_linkable:
+          valid_source_types: org.openecomp.resource.cp.CP # service level network
+
+    lb_ha_net:
+      type: org.openecomp.resource.vl.VL
+
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: LB HA network
+        description: LB sync network
+        type: VL
+        category: VL
+        vendor: Nokia
+      properties:
+        network_type: Tenant_Layer_3
+        network_role: Intra-service
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input: network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 169.253.0.0/17 # HEAT ENV
+          gateway_ip: 169.253.0.3 # HEAT ENV
+          dhcp_enabled: false # HEAT ENV
+      capabilities:
+        virtual_linkable:
+          valid_source_types: org.openecomp.resource.cp.CP
+
+
+  groups:
+
+    # Server Groups for applying placement policy
+    LbGroup:
+      type: tosca.groups.Root
+      members: [vLB]
+
+    mmscGroup:
+      type: tosca.groups.Root
+      members: [vMMSC]
+
+    nemas_feGroup:
+      type: tosca.groups.Root
+      members: [vNEMS_FE]
+
+    eca_trxGroup:
+      type: tosca.groups.Root
+      members: [vECA_TRX]
+    
+    # VF Modules
+    VFModuleMMSC_Expansion:
+      type: org.openecomp.groups.VfModule
+
+      metadata:
+        vfModuleModelName: vMMSC::module-1
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelUUID: b020dd1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+
+      properties:
+        vf_module_type: Expansion # set by service designer
+        vf_module_description: vMMSC growth unit # set by service designer
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+        volume_group: false # from HEAT / service Designer
+        artifacts: # HEAT Templates
+          - 099a6909-290f-4293-a347-736f11b8ff18
+          - 0db84f21-d298-4a4b-b11e-37b92a734066
+      
+      members:
+      - vMMSC
+      - vNEMS_FE
+      - vNEMS_BE
+      - vECA_TRX
+      - vLB
+      - mmsc_oam
+      - mmsc_traffic
+      - nems_fe_web
+      - mmsc_traffic_net
+      - nems_imap_net
+      - nems_internal_net
+      
+
+  policies:
+     # Autoscaling policy
+    - mmsc_autoscale_policy:
+      type: org.openecomp.policy.Autoscaling
+
+      properties:
+        min_instances: 1
+        max_instances: 4
+        increment: 1
+        factor: bandwidth
+        threshold: 5 Gpbs
+
+      target: [ VFModuleMMSC_Expansion ]
+
+   # Placement policy
+    - mmsc_anti_affinity_placement_policy:
+      type: org.openecomp.policy.Placement
+
+      properties:
+        conatiner_type: compute
+        policy: anti_affinity
+
+      target: [ LbGroup, mmscGroup, nemas_feGroup, eca_trxGroup, eca_oamGroup, cmauiGroup ]
\ No newline at end of file
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/MMSC_VFMissingVFModule.yaml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/MMSC_VFMissingVFModule.yaml
new file mode 100644
index 0000000..4e99ade
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/MMSC_VFMissingVFModule.yaml
@@ -0,0 +1,975 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: vMMSC VF Topology Template
+
+metadata:
+  invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+  UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+  name: vMMC VF
+  description: |
+                        Delivers messages composed of text, images, and other media types (for example audio and video) 
+                        in an operator's network. It is responsible for storing and handling incoming and outgoing Multimedia
+                        Messages (MMs); therefore, acting as an MMS Relay and MMS Server at the same time.
+  type: VF
+  category: Mobility
+  subCategory: MMC
+  vendor: Nokia
+  vendorVersion: 6.0.2.14
+
+  
+ # reference to template definitions
+imports:
+  - tosca_simple_profile_for_ecomp_1_0.yml
+  
+topology_template:
+  
+   # This section provides the parameters which OPENECOMP is not providing values to during instantiation.
+   # It is expected that node template parameters which are not mapped to the Inputs section recieve value from OPENECOMP
+   # during the orchestration
+
+  inputs: 
+    
+  node_templates:
+
+    vMMSC: # vMMSC VFC
+      type: org.openecomp.resource.vfc.Generic
+
+      metadata:
+        invariantUUID: 673f8d08-2223-4a97-127c-11ab729d23bc
+        UUID: 2714db52-2116-a3af-1240-a236221ca004
+        version: 1.0
+        name: vMMC VFC
+        description:
+        type: VFC
+        category: Generic
+        subCategory: Generic_VFC
+        vendor: Nokia
+        vendorVersion: 6.0.2.14
+
+      properties:
+        vfc_ecomp_name: true
+        vfc_instance_name: # to be set by OPENECOMP during instantiation
+        vfc_type_tag:  # from HEAT ENV
+        vfc_description: vMMSC VFC
+        vfc_image_name: mmsc-6.0.2_v14.qcow2 # from HEAT / HEAT ENV
+        vfc_availability_zone: 
+
+
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: mmsc_flavor # from HEAT ENV
+        scaling:
+          properties:
+            min_instances: 5
+            max_instances: 5
+            initial_instance: 
+
+    vNEMS_FE: # vNEMS VFC
+      type: org.openecomp.resource.vfc.Generic
+
+      metadata:
+        invariantUUID: 673f8d08-2223-4a97-127c-11ab729d23bc
+        UUID: 2714db52-2116-a3af-1240-a236221ca004
+        version: 1.0
+        name: vNEMS_FE VFC
+        description: |
+                              Legacy support that makes it possible for subscribers without MMS-enabled phones to receive 
+                              multimedia messages (MMs) through a web or WAP interface.
+                              E-mail smart push that lets subscribers send and receive MMs to and from the Internet (MM3 interface).
+        type: VFC
+        category: Generic_VFC
+        subCategory: Generic_VFC
+        vendor: Nokia
+        vendorVersion: 2.1.2.44
+      
+      properties:
+        vfc_ecomp_name: true
+        vfc_instance_name: # to be set by OPENECOMP during instantiation
+        vfc_type_tag:  # from HEAT ENV
+        vfc_description: vNEMS_FE VFC
+        vfc_image_name: nems-2.1.2_v44.qcow2 # from HEAT / HEAT ENV
+        vfc_availability_zone: 
+
+
+      
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: nems_fe_flavor # from HEAT ENV
+        scaling:
+          properties:
+            min_instances: 2 # set by service designer
+            max_instances: 4 # set by service designer
+
+    vNEMS_BE: # vNEMS VFC
+      type: org.openecomp.resource.vfc.Generic
+
+      metadata:
+        invariantUUID: 673f8d08-2223-4a97-127c-11ab729d23bc
+        UUID: 2714db52-2116-a3af-1240-a236221ca004
+        version: 1.0
+        name: vNEMS_BE VFC
+        description: |
+                              Legacy support that makes it possible for subscribers without MMS-enabled phones to receive 
+                              multimedia messages (MMs) through a web or WAP interface.
+                              E-mail smart push that lets subscribers send and receive MMs to and from the Internet (MM3 interface).
+        type: VFC
+        category: Generic_VFC
+        subCategory: Generic_VFC
+        vendor: Nokia
+        vendorVersion: 2.1.2.44
+      
+      properties:
+        vfc_ecomp_name: true
+        vfc_instance_name: # to be set by OPENECOMP during instantiation
+        vfc_type_tag:  # from HEAT ENV
+        vfc_description: vNEMS_FE VFC
+        vfc_image_name: nems-2.1.2_v44.qcow2 # from HEAT / HEAT ENV
+        vfc_availability_zone: 
+
+
+      
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: nems_be_flavor # from HEAT ENV
+        scaling:
+          properties:
+            min_instances: 1 # set by service designer
+            max_instances: 2 # set by service designer
+
+    vECA_TRX: # vNEMS VFC
+      type: org.openecomp.resource.vfc.Generic
+
+      metadata:
+        invariantUUID: 673f8d08-2223-4a97-127c-11ab729d23bc
+        UUID: 2714db52-2116-a3af-1240-a236221ca004
+        version: 1.0
+        name: vECA_TRX VFC
+        description: Traffic handling
+        type: VFC
+        category: Generic_VFC
+        subCategory: Generic_VFC
+        vendor: Nokia
+        vendorVersion: 13
+      
+      properties:
+        vfc_ecomp_name: true
+        vfc_instance_name: # to be set by OPENECOMP during instantiation
+        vfc_type_tag:  # from HEAT ENV
+        vfc_description: vECA_TRX VFC
+        vfc_image_name: eca-v13-release.qcow2 # from HEAT / HEAT ENV
+        vfc_availability_zone: 
+
+
+      
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: eca_trx_flavor # from HEAT ENV
+        scaling:
+          properties:
+            min_instances: 20 # set by service designer
+            max_instances: 20 # set by service designer
+
+    vLB: # F5 VFC
+      type: org.openecomp.resource.vfc.Generic
+
+      metadata:
+        invariantUUID: 673f8d08-2223-4a97-127c-11ab729d23bc
+        UUID: 2714db52-2116-a3af-1240-a236221ca004
+        version: 1.0
+        name: F5 LB VFC
+        description: Load Balancer
+        type: VFC
+        category: Generic
+        subCategory: Generic_VFC
+        vendor: F5 Networks
+        vendorVersion: 11.5.3.163
+
+      properties:
+        vfc_ecomp_name: true
+        vfc_instance_name: # to be set by OPENECOMP during instantiation
+        vfc_type_tag:  # from HEAT ENV
+        vfc_description: F5 VFC
+        vfc_image_name: F5-11_5_3-EngHF-34_163.qcow2 # from HEAT / HEAT ENV
+        vfc_availability_zone: 
+
+
+
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: bigip_flavor # from HEAT ENV
+        scaling:
+          properties:
+            min_instances: 2
+            max_instances: 2
+
+   #  Internal VF Connection Points (VFCs connection points)
+
+    mmsc_oam: # external OAM CP to mobility OAM network
+      type: org.openecomp.cp.OAM
+      
+      metadata:
+        invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+        UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: OAM CP
+        description: OAM CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_Info:
+          ip_address:  # provided by OPENECOMP (SDNC)
+      
+
+    
+    mmsc_traffic:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    nems_fe_oam: # external OAM CP to mobility OAM network
+      type: org.openecomp.cp.OAM
+      
+      metadata:
+        invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+        UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: OAM CP
+        description: OAM CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_Info:
+          ip_address:  # provided by OPENECOMP (SDNC)
+      
+
+
+    nems_fe_internal:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    nems_fe_imap:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    nems_fe_web:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    nems_fe_traffic:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    nems_be_oam: # external OAM CP to mobility OAM network
+      type: org.openecomp.cp.OAM
+      
+      metadata:
+        invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+        UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: OAM CP
+        description: OAM CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      properties:
+        address_Info:
+          ip_address:  # provided by OPENECOMP (SDNC)
+
+
+    nems_be_internal:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    nems_be_imap:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    eca_trx_oam: # external OAM CP to mobility OAM network
+      type: org.openecomp.cp.OAM
+      
+      metadata:
+        invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+        UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: OAM CP
+        description: OAM CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_Info:
+          ip_address:  # provided by OPENECOMP (SDNC)
+      
+
+
+    eca_trx_internal:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    eca_trx_traffic:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    lb_ha:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    lb_mmsc_traffic:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    lb_nems_traffic:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    lb_nems_web:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    lb_eca_traffic:
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    lb_oam: # external OAM CP to mobility OAM network
+      type: org.openecomp.cp.OAM
+      
+      metadata:
+        invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+        UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: OAM CP
+        description: OAM CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_Info:
+          ip_address:  # provided by OPENECOMP (SDNC)
+      
+
+
+    lb_dmz_protected: # external CP to mobility DMZ protected network
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    lb_core_direct: # external CP to mobility core direct network
+      type: org.openecomp.cp.CP
+      
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+      
+
+
+    # Intra-VF Virtual Links (Networks)
+  
+    mmsc_traffic_net:
+      type: org.openecomp.resource.vl.VL
+
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: MMSC traffic network
+        description: mmsc traffic network
+        type: VL
+        category: VL
+        vendor: Nokia
+      properties:
+        network_type: Tenant_Layer_3
+        network_role: Intra-service
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input: network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 169.253.0.0/17 # HEAT ENV
+          gateway_ip: 169.253.0.3 # HEAT ENV
+          dhcp_enabled: false # HEAT ENV
+      capabilities:
+        virtual_linkable:
+          valid_source_types: org.openecomp.resource.cp.CP  
+
+    nems_imap_net:
+      type: org.openecomp.resource.vl.VL
+
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: NEMS IMAP network
+        description: NEMS internal IMAP network
+        type: VL
+        category: VL
+        vendor: Nokia
+      
+      properties:
+        network_type: Tenant_Layer_3
+        network_role: Intra-service
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input: network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 169.253.0.0/17 # HEAT ENV
+          gateway_ip: 169.253.0.3 # HEAT ENV
+          dhcp_enabled: false # HEAT ENV
+      
+      capabilities:
+        virtual_linkable:
+          valid_source_types: org.openecomp.resource.cp.CP
+
+    nems_internal_net:
+      type: org.openecomp.resource.vl.VL
+
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: NEMS internal traffic network
+        description: NEMS internal traffic network
+        type: VL
+        category: VL
+        vendor: Nokia
+
+      properties:
+        network_type: Tenant_Layer_3
+        network_role: Intra-service
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input: network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 169.253.0.0/17 # HEAT ENV
+          gateway_ip: 169.253.0.3 # HEAT ENV
+          dhcp_enabled: false # HEAT ENV
+      
+      capabilities:
+        virtual_linkable:
+          valid_source_types: org.openecomp.resource.cp.CP
+
+    nems_web_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: NEMS web network
+        description: nems web nwtwork
+        type: VL
+        category: VL
+        vendor: Nokia
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input: network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 169.255.0.0/17 # HEAT ENV
+          gateway_ip: 169.255.0.3 # HEAT ENV
+          dhcp_enabled: false # HEAT ENV
+      capabilities:
+        virtual_linkable:
+          valid_source_types: org.openecomp.resource.cp.CP
+
+    nems_traffic_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: NEMS traffic network
+        description: NEMS traffic network
+        type: VL
+        category: VL
+        vendor: Nokia
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input: network_deployment_node }
+        contrail_virtual_network:
+          network_name: # provided by OPENECOMP (SDNC)
+          route_targets: 13979:105717
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.0/27 # HEAT ENV
+          gateway_ip: 107.243.37.1 # HEAT ENV
+          start_ip: 107.243.37.3 # HEAT ENV
+          end_ip: 107.243.37.30 # HEAT ENV
+      capabilities:
+        virtual_linkable:
+          valid_source_types: org.openecomp.resource.cp.CP
+
+    eca_traffic_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: ECA traffic network
+        description: ECA traffic network
+        type: VL
+        category: VL
+        vendor: Nokia
+
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input: network_deployment_node }
+        contrail_virtual_network:
+          network_name: # provided by OPENECOMP (SDNC)
+          route_targets: 13979:105719
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.32/24 # HEAT ENV
+          gateway_ip: 107.243.37.33 # HEAT ENV
+          start_ip: 107.243.37.35 # HEAT ENV
+          end_ip: 107.243.37.62 # HEAT ENV
+      capabilities:
+        virtual_linkable:
+          valid_source_types: org.openecomp.resource.cp.CP
+
+    eca_internal_net:
+      type: org.openecomp.resource.vl.VL
+
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: ECA internal traffic network
+        description: ECA internal traffic network
+        type: VL
+        category: VL
+        vendor: Nokia
+
+      properties:
+        network_type: Tenant_Layer_3
+        network_role: Intra-service
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input: network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 169.253.0.0/17 # HEAT ENV
+          gateway_ip: 169.253.0.3 # HEAT ENV
+          dhcp_enabled: false # HEAT ENV
+      
+      capabilities:
+        virtual_linkable:
+          valid_source_types: org.openecomp.resource.cp.CP # service level network
+
+    lb_ha_net:
+      type: org.openecomp.resource.vl.VL
+
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: LB HA network
+        description: LB sync network
+        type: VL
+        category: VL
+        vendor: Nokia
+      properties:
+        network_type: Tenant_Layer_3
+        network_role: Intra-service
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input: network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 169.253.0.0/17 # HEAT ENV
+          gateway_ip: 169.253.0.3 # HEAT ENV
+          dhcp_enabled: false # HEAT ENV
+      capabilities:
+        virtual_linkable:
+          valid_source_types: org.openecomp.resource.cp.CP
+
+
+  groups:
+
+    # Server Groups for applying placement policy
+    LbGroup:
+      type: tosca.groups.Root
+      members: [vLB]
+
+    mmscGroup:
+      type: tosca.groups.Root
+      members: [vMMSC]
+
+    nemas_feGroup:
+      type: tosca.groups.Root
+      members: [vNEMS_FE]
+
+    eca_trxGroup:
+      type: tosca.groups.Root
+      members: [vECA_TRX]
+    
+    # VF Modules
+    VFModuleMMSC_Expansion:
+      type: org.openecomp.groups.VfModule
+
+      metadata:
+        vfModuleModelName: vMMSC::module-1
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelUUID: b020dd1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+
+      properties:
+        vf_module_type: Expansion # set by service designer
+        vf_module_description: vMMSC growth unit # set by service designer
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+        volume_group: false # from HEAT / service Designer
+        artifacts: # HEAT Templates
+          - 099a6909-290f-4293-a347-736f11b8ff18
+          - 0db84f21-d298-4a4b-b11e-37b92a734066
+      
+      members:
+      - vMMSC
+      - vNEMS_FE
+      - vNEMS_BE
+      - vECA_TRX
+      - vLB
+      - mmsc_oam
+      - mmsc_traffic
+      - nems_fe_web
+      - mmsc_traffic_net
+      - nems_imap_net
+      - nems_internal_net
+      
+
+  policies:
+     # Autoscaling policy
+    - mmsc_autoscale_policy:
+      type: org.openecomp.policy.Autoscaling
+
+      properties:
+        min_instances: 1
+        max_instances: 4
+        increment: 1
+        factor: bandwidth
+        threshold: 5 Gpbs
+
+      target: [ VFModuleMMSC_Expansion ]
+
+   # Placement policy
+    - mmsc_anti_affinity_placement_policy:
+      type: org.openecomp.policy.Placement
+
+      properties:
+        conatiner_type: compute
+        policy: anti_affinity
+
+      target: [ LbGroup, mmscGroup, nemas_feGroup, eca_trxGroup, eca_oamGroup, cmauiGroup ]
\ No newline at end of file
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/Resource0-template.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/Resource0-template.yml
new file mode 100644
index 0000000..49666f9
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/Resource0-template.yml
@@ -0,0 +1,24 @@
+ # _______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           								 	  |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							  |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: 461a4839-2572-4dc1-b3be-dcb4c1908764
+  UUID: bca09900-d37a-48db-8cd2-de014b2fdbba
+  name: resource_0
+  description: description
+  type: VF
+  category: Generic
+  subcategory: Infrastructure
+  resourceVendor: vendor name
+  resourceVendorRelease: vendor release
+topology_template:
+  substitution_mapping:
+    node_type: org.openecomp.resource.vf.Resource0
+ # _______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           								 	  |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							  |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/Resource1-template.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/Resource1-template.yml
new file mode 100644
index 0000000..3152660
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/Resource1-template.yml
@@ -0,0 +1,24 @@
+ # _______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           								 	  |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							  |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: af39c951-3a61-4324-9a1f-892a26f713fb
+  UUID: 438eecb8-bdf0-4356-b8f4-80dfcaafecbf
+  name: resource_1
+  description: description
+  type: VF
+  category: Generic
+  subcategory: Infrastructure
+  resourceVendor: vendor name
+  resourceVendorRelease: vendor release
+topology_template:
+  substitution_mapping:
+    node_type: org.openecomp.resource.vf.Resource1
+ # _______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           								 	  |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							  |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/Service0-template.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/Service0-template.yml
new file mode 100644
index 0000000..0ddab00
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/Service0-template.yml
@@ -0,0 +1,28 @@
+ # _______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           								 	  |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							  |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: ba65d050-f98a-4950-ab2f-3b6557d9476f
+  UUID: b79f52b8-57ab-43a0-a6d8-9db685f08073
+  name: service_0
+  description: desc
+  type: Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+imports:
+  resource_0:
+    file: Resource0-template.yml
+  resource_1:
+    file: Resource1-template.yml
+topology_template:
+  substitution_mapping:
+    node_type: org.openecomp.service.Service0
+ # _______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           								 	  |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							  |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/Service0-templateMoreThan256.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/Service0-templateMoreThan256.yml
new file mode 100644
index 0000000..0411603
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/Service0-templateMoreThan256.yml
@@ -0,0 +1,28 @@
+ # _______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           								 	  |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							  |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: ba65d050-f98a-4950-ab2f-3b6557d9476f
+  UUID: b79f52b8-57ab-43a0-a6d8-9db685f08073
+  name: service_00bbbbbbbbbbbbbbbbbbbbbbbb_______________________bbbbbbbbbbbbb           bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb              bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+  description: desc0123bbbbbbbbbbbbb______________bbbbbbbbbbbbbbbbbbbbbbbbbb             bbbbbbbbbbbb_____________bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+  type: Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+imports:
+  resource_0:
+    file: Resource0-template.yml
+  resource_1:
+    file: Resource1-template.yml
+topology_template:
+  substitution_mapping:
+    node_type: org.openecomp.service.Service0
+ # _______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           								 	  |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							  |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/ServiceWithNodetemplate.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/ServiceWithNodetemplate.yml
new file mode 100644
index 0000000..b28bda5
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/ServiceWithNodetemplate.yml
@@ -0,0 +1,51 @@
+ # _______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           								 	  |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							  |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: ba65d050-f98a-4950-ab2f-3b6557d9476f
+  UUID: b79f52b8-57ab-43a0-a6d8-9db685f08073
+  name: service_0
+  description: desc
+  type: Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+imports:
+  resource_0:
+    file: Resource0-template.yml
+  resource_1:
+    file: Resource1-template.yml
+topology_template:
+  node_templates:
+    resource_1 2:
+      type: org.openecomp.resource.vf.Resource1
+      metadata:
+        invariantUUID: af39c951-3a61-4324-9a1f-892a26f713fb
+        UUID: 438eecb8-bdf0-4356-b8f4-80dfcaafecbf
+        version: 1.0
+        name: resource_1
+        description: description
+        type: VF
+        category: Generic
+        subcategory: Infrastructure
+    resource_0 1:
+      type: org.openecomp.resource.vf.Resource0
+      metadata:
+        invariantUUID: 461a4839-2572-4dc1-b3be-dcb4c1908764
+        UUID: bca09900-d37a-48db-8cd2-de014b2fdbba
+        version: 1.0
+        name: resource_0
+        description: description
+        type: VF
+        category: Generic
+        subcategory: Infrastructure
+  substitution_mapping:
+    node_type: org.openecomp.service.Service0
+ # _______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           								 	  |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							  |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/aai/service_vmme_template_1.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/aai/service_vmme_template_1.yml
new file mode 100644
index 0000000..b3b7889
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/aai/service_vmme_template_1.yml
@@ -0,0 +1,193 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  serviceInvariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  serviceUUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  serviceVersion: 1.0
+  serviceName: vMME_Service
+  serviceDescription: vMME_Service
+  serviceCategory: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+    
+topology_template:
+
+  inputs:    
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity 
+      
+  node_templates:
+
+    mme: # vMME VNF
+      type: org.openecomp.resource.vf.vmme
+
+      metadata:
+          resourceInvariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          resourceUUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          resourceversion: 1.0
+          resourceName: vMME_VF
+          resourceDescription: vMME_VF
+          resourceType: VF
+          resourceCategry: Application L4+
+          resourceSubcategory: Firewall  
+          resourceVendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+
+  # Virtual Links (Networks)
+  
+    gtp_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        resourceInvariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+        resourceUUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+        resourceversion: 1.0
+        resourceName: GTPNet
+        resourceDescription: GTP External Network
+        resourceType: VL
+        resourceCategry: VL
+        resourceVendor: AT&T      
+      properties:
+        network_type: Tenant_Layer_3 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: {get_input: gtp_net_network_name}
+          route_targets: {get_input: gtp_net_route_targets}
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN 
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: {get_input: gtp_net_cidr}
+          gateway_ip: {get_input: gtp_net_gateway_ip}
+          start_ip: {get_input: gtp_net_start_ip}
+          end_ip: {get_input: gtp_net_end_ip}
+    
+    sctp_a_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        resourceInvariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+        resourceUUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+        resourceversion: 1.0
+        resourceName: SCTPANet
+        resourceDescription: SCTP A External Network
+        resourceType: VL
+        resourceCategry: VL
+        resourceVendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+          route_targets: 13979:105717
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.0/27 # HEAT ENV
+          gateway_ip: 107.243.37.1 # HEAT ENV
+          start_ip: 107.243.37.3 # HEAT ENV
+          end_ip: 107.243.37.30 # HEAT ENV
+      
+    sctp_b_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        resourceInvariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+        resourceUUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+        resourceversion: 1.0
+        resourceName: SCTPBNet
+        resourceDescription: SCTP B External Network
+        resourceType: VL
+        resourceCategry: VL
+        resourceVendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+          route_targets: 13979:105719
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.32/24 # HEAT ENV
+          gateway_ip: 107.243.37.33 # HEAT ENV
+          start_ip: 107.243.37.35 # HEAT ENV
+          end_ip: 107.243.37.62 # HEAT ENV
+      
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/aai/vf_vmme_template_1.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/aai/vf_vmme_template_1.yml
new file mode 100644
index 0000000..2a169e6
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/aai/vf_vmme_template_1.yml
@@ -0,0 +1,1219 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: VF Template for pseodo vMME 
+
+# metadata of the VF model
+metadata:
+  resourceInvariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+  resourceUUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+  resourceversion: 1.0
+  resourceName: vMME_VF
+  resourceDescription: vMME_VF
+  resourceType: VF
+  resourceCategry: Application L4+
+  resourceSubcategory: Firewall  
+  resourceVendor: Ericsson
+
+# imports include all other tosca definitions that are required for this template
+imports:
+  NovaServerGlobalTypes:
+    file: NovaServerGlobalTypesServiceTemplate.yaml
+  
+topology_template:
+
+# inputs are all the HEAT_ENV parameters and also the editable properties of the VF's internal resources (VFCs, connection points and networks)
+  inputs:    
+    fsb1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    fsb1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    fsb1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_FSB1_16ACP03.qcow2
+    fsb1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    fsb2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB002
+    fsb2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    fsb2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_FSB2_16ACP03.qcow2
+    fsb2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      defualt: m4.xlarge4
+    ncb1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    ncb1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    ncb1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_NCB1_16ACP03.qcow2
+    ncb1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    ncb2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    ncb2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    ncb2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_NCB2_16ACP03.qcow2
+    ncb2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    gpb1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    gpb1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    gpb1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_GPB1_16ACP03.qcow2
+    gpb1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    gpb2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    gpb2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    gpb2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_GPB2_16ACP03.qcow2
+    gpb2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    vlc1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    vlc1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    vlc1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_VLC1_16ACP03.qcow2
+    vlc1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    vlc2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    vlc2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    vlc2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_VLC2_16ACP03.qcow2
+    vlc2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    
+    fsb1_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    fsb1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    fsb1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    fsb2_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    fsb2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    fsb2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    
+    ncb1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    ncb1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    ncb2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    ncb2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    gpb1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    gpb1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    gpb2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    gpb2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    vlc1_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc1_gtp_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc1_sctp_a_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc1_sctp_b_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221           
+    vlc1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    vlc1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12  
+    vlc2_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc2_gtp_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc2_sctp_a_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc2_sctp_b_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221           
+    vlc2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    vlc2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12  
+    Internal1_net_dhcp:
+      hidden: false
+      immutable: false
+      type: string
+      default: 'False'
+    Internal1_net_cidr:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.253.0.0/17
+    Internal1_net_gateway_ip:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.253.0.3
+    Internal2_net_dhcp:
+      hidden: false
+      immutable: false
+      type: string
+      default: 'False'
+    Internal2_net_cidr:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.255.0.0/17
+    Internal2_net_gateway_ip:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.255.0.3
+    network_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this Network instance
+    oam_net_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: uuid of oam network
+      default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+
+  node_templates:
+
+    # VFCs / VMs
+    FSB1: # VFC1 / VM1
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        resourceInvariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        resourceUUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceversion: 1.0
+        resourceName: Nova Server
+        resourceDescription: VFC based on OpenStack Nova Server
+        resourceType: VFC
+        resourceCategry: Generic
+        resourceSubcategry: Infrastructure
+        resourceVendor: Ericsson        
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: fsb1_vfc_instance_name} 
+        vfc_type_tag: {get_input: fsb1_vfc_type_tag} 
+        vfc_description: FSB1
+        vfc_image_name: {get_input: fsb1_vfc_image_name} 
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: fsb1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: fsb1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capabilty:
+          properties:
+            name: high_cpu
+            
+
+    FSB2: # VFC2 / VM2
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        resourceInvariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        resourceUUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceversion: 1.0
+        resourceName: Nova Server
+        resourceDescription: VFC based on OpenStack Nova Server
+        resourceType: VFC
+        resourceCategry: Generic
+        resourceSubcategry: Infrastructure
+        resourceVendor: Ericsson        
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: fsb2_vfc_instance_name} 
+        vfc_type_tag: {get_input: fsb2_vfc_type_tag} 
+        vfc_description: FSB2
+        vfc_image_name: {get_input: fsb2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: fsb2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: fsb2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    NCB1: # VFC3 / MV3
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        resourceInvariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        resourceUUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceversion: 1.0
+        resourceName: Nova Server
+        resourceDescription: VFC based on OpenStack Nova Server
+        resourceType: VFC
+        resourceCategry: Generic
+        resourceSubcategry: Infrastructure
+        resourceVendor: Ericsson        
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: ncb1_vfc_instance_name} 
+        vfc_type_tag: {get_input: ncb1_vfc_type_tag} 
+        vfc_description: NCB1
+        vfc_image_name: {get_input: ncb1_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: ncb1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: ncb1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    NCB2: # VFC4 / VM4
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        resourceInvariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        resourceUUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceversion: 1.0
+        resourceName: Nova Server
+        resourceDescription: VFC based on OpenStack Nova Server
+        resourceType: VFC
+        resourceCategry: Generic
+        resourceSubcategry: Infrastructure
+        resourceVendor: Ericsson        
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: ncb2_vfc_instance_name} 
+        vfc_type_tag: {get_input: ncb2_vfc_type_tag} 
+        vfc_description: NCB2
+        vfc_image_name: {get_input: ncb2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: ncb2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: ncb2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    GPB1: # VFC5 / VM5
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        resourceInvariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        resourceUUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceversion: 1.0
+        resourceName: Nova Server
+        resourceDescription: VFC based on OpenStack Nova Server
+        resourceType: VFC
+        resourceCategry: Generic
+        resourceSubcategry: Infrastructure
+        resourceVendor: Ericsson        
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: gpb1_vfc_instance_name} 
+        vfc_type_tag: {get_input: gpb1_vfc_type_tag} 
+        vfc_description: GPB1
+        vfc_image_name: {get_input: gpb1_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: gpb1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: gpb1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+    
+    GPB2: # VFC6 / VM6
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        resourceInvariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        resourceUUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceversion: 1.0
+        resourceName: Nova Server
+        resourceDescription: VFC based on OpenStack Nova Server
+        resourceType: VFC
+        resourceCategry: Generic
+        resourceSubcategry: Infrastructure
+        resourceVendor: Ericsson        
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: gpb2_vfc_instance_name} 
+        vfc_type_tag: {get_input: gpb2_vfc_type_tag} 
+        vfc_description: GPB2
+        vfc_image_name: {get_input: gpb2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: gpb2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: gpb2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    VLC1: # VFC7 / VM7
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        resourceInvariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        resourceUUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceversion: 1.0
+        resourceName: Nova Server
+        resourceDescription: VFC based on OpenStack Nova Server
+        resourceType: VFC
+        resourceCategry: Generic
+        resourceSubcategry: Infrastructure
+        resourceVendor: Ericsson        
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: vlc1_vfc_instance_name} 
+        vfc_type_tag: {get_input: vlc1_vfc_type_tag} 
+        vfc_description: VLC1
+        vfc_image_name: {get_input: vlc1_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: vlc1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: vlc1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    VLC2: # VFC8 / VM8
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        resourceInvariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        resourceUUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceversion: 1.0
+        resourceName: Nova Server
+        resourceDescription: VFC based on OpenStack Nova Server
+        resourceType: VFC
+        resourceCategry: Generic
+        resourceSubcategry: Infrastructure
+        resourceVendor: Ericsson        
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: vlc2_vfc_instance_name} 
+        vfc_type_tag: {get_input: vlc2_vfc_type_tag} 
+        vfc_description: VLC2
+        vfc_image_name: {get_input: vlc2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: vlc2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: vlc2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+      
+      
+  # Connection Points
+
+    fsb1_oam: # VFC1 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: fsb1_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb1_internal1: # VFC1 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address:  {get_input: fsb1_internal1_mac_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+        
+    fsb1_internal2: # VFC1 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: fsb1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb2_oam: # VFC2 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: fsb2_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb2_internal1: # VFC2 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: fsb2_internal1_mac_address}  
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb2_internal2: # VFC2 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: fsb2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb1_internal1: # VFC3 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb1_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb1_internal2: # VFC3 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb2_internal1: # VFC4 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb2_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb2_internal2: # VFC4 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb1_internal1: # VFC5 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb1_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb1_internal2: # VFC5 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb2_internal1: # VFC6 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb2_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb2_internal2: # VFC6 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc1_oam: # VFC7 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc1_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc1_internal2: # VFC7 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: vlc1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc1_sctp_a: # VFC7 eca_sctp_a CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_a_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_a_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc1_sctp_b: # VFC7 eca_sctp_b CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_b_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_b_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc1_gtp_net: # VFC7 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc1_gtp_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: gtp_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc2_oam: # VFC8 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc2_internal1: # VFC8 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: vlc2_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc2_internal2: # VFC8 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: vlc2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc2_sctp_a: # VFC8 eca_sctp_a CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_a_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_a_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc2_sctp_b: # VFC8 eca_sctp_b CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_b_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_b_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc2_gtp_net: # VFC8 gtp CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_gtp_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: gtp_net
+              # relationship: tosca.relationships.network.BindsTo
+
+  # Virtual Links (Networks)
+  
+    Internal1_net:
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+
+      metadata:
+        resourceInvariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        resourceUUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceversion: 1.0
+        resourceName: Network
+        resourceDescription: Internal Network
+        resourceType: VL
+        resourceCategry: Generic
+        resourceSubcategory: Infrastructure
+        resourceVendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_role: 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        ip_version: 4
+        enable_dhcp: {get_input: Internal1_net_enable_dhcp}
+        cidr: {get_input: Internal1_net_cidr}
+        gateway_ip: {get_input: Internal1_net_gateway_ip}
+     
+    Internal2_net:
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+      metadata:
+        resourceInvariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        resourceUUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceversion: 1.0
+        resourceName: Network
+        resourceDescription: Internal Network
+        resourceType: VL
+        resourceCategry: Generic
+        resourceSubcategory: Infrastructure
+        resourceVendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_role: 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        ip_version: 4
+        enable_dhcp: {get_input: Internal2_net_enable_dhcp}
+        cidr: {get_input: Internal2_net_cidr}
+        gateway_ip: {get_input: Internal2_net_gateway_ip}
+  
+    
+    oam_net:
+      type: org.openecomp.resource.vl.OAM
+
+      metadata:
+        resourceInvariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+        resourceUUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+        resourceversion: 2.0
+        resourceName: Mobility OAM Network
+        resourceDescription: Mobility OAM Network
+        resourceType: VL
+        resourceCategry: VL
+        resourceVendor: AT&T
+
+      properties:
+        network_type: vIPR_ATM_OAM
+        network_technology: Contrail
+        network_id: {get_input: oam_net_id}
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+      
+  
+  groups:
+
+    # VF Modules
+    vfmoduleVmmeModule-1:
+      type: org.openecomp.groups.VfModule
+
+      metadata:
+        vfModuleModelName: vMME::module-1
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelUUID: b220ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+
+      properties:
+        vf_module_type: Expansion # set by service designer
+        vf_module_label: vMME Expansion VF Module # set by service designer
+        vf_module_description: vMME expansion VF Module # set by service designer
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 2 # from HEAT
+        volume_group: false # from HEAT / service Designer
+        artifacts: # HEAT Templates
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+      
+      members:
+      - FSB1
+      - FSB2
+      - NCB1
+      - NCB2
+      - VLC2
+      - oam_net
+      - vlc2_gtp_net
+      - Internal1_net
+      - fsb1_oam
+      - Internal2_net
+
+
+   
+    # HEAT Stacks 
+
+    vmme_small:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/vmme_small.yml
+        description: HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc
+
+      members: [ FSB1, FSB2, NCB1, NCB2, VLC1, VLC2, GPB1, GPB2, Internal1_net, Internal2_net, fsb1_oam, 
+                fsb1_internal1, fsb1_internal2, fsb2_oam, fsb2_internal2, ncb1_internal1, ncb1_internal2,
+                ncb2_internal1, ncb2_internal2, gpb1_internal1, gpb1_internal2, gpb2_internal1,
+                gpb2_internal2, vlc1_oam, vlc1_internal1, vlc1_internal2, vlc1_sctp_a, vlc1_sctp_b, 
+                vlc1_gtp, vlc2_oam, vlc2_internal1, vlc2_internal2, vlc2_sctp_a, vlc2_sctp_b, vlc1_gtp ]
+    
+    vmme_small_create_fsb:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/vmme_small_create_fsb.yml
+        description: server template for vMME
+        
+      members: [ FSB1_volume, FSB2_volume ]
+
+  policies:
+    # Autoscaling policy
+    - mme_autoscale_policy:
+        type: org.openecomp.policy.Autoscaling
+        properties:
+          min_instances: 1
+          max_instances: 4
+          increment: 1
+          factor: cpu_load
+          threshold: 80%
+
+        target: [ vfmoduleVmmeModule-1]
+        
+  
+  substitution_mapping:
+      type: org.openecomp.resource.vf.vmme
+      
+      requirements:
+        - vlc1_gtp_net.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo
+        - vlc2_gtp_net.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo   
+        - vlc1_sctp_a.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo
+        - vlc1_sctp_b.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo              
\ No newline at end of file
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource-template_IpMux.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource-template_IpMux.yml
new file mode 100644
index 0000000..030fa24
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource-template_IpMux.yml
@@ -0,0 +1,78 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+  UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+  name: Allotted Resource
+  description: This is a VF - Allotted resource
+  type: VF
+  category: Allotted Resource
+  subcategory: IP Mux Demux
+  resourceVendor: '1'
+  resourceVendorRelease: '1'
+imports:
+- Alloted resource:
+    file: resource-AllotedResource-template.yml
+topology_template:
+  node_templates:
+    allotedresource1:
+      type: org.openecomp.resource.vfc.AllottedResource1
+      metadata:
+        invariantUUID: 666b409b-5614-41a8-945e-a53d68f5d439
+        UUID: df0c1c4d-1756-4b2a-998e-73f9f4d77afa
+        customizationUUID: 1c217567-5093-41f5-86e6-22c97ef24e75
+        version: '1.0'
+        name: Alloted resource
+        description: This is a VFC- Allotted resource
+        type: VFC
+        category: Allotted Resource1
+        subcategory: Allotted Resource
+      properties:
+        role: name
+        ecomp_naming:
+          naming_policy: test
+          ecomp_generated_naming: false
+          supplemental_data:
+            Key1: key1
+        max_instances: 1
+        min_instances: 1
+        ecomp_homing:
+          instance_node_target: Test
+          homing_policy: Test
+          supplemental_data:
+            Key: key
+          ecomp_selected_instance_node_target: false
+  groups: {
+    }
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.AllottedResource
+    capabilities:
+      Alloted resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Alloted resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Alloted resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource-template_IpMux_WithGroups.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource-template_IpMux_WithGroups.yml
new file mode 100644
index 0000000..2827503
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource-template_IpMux_WithGroups.yml
@@ -0,0 +1,283 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+  UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+  name: Allotted Resource
+  description: This is a VF - Allotted resource
+  type: VF
+  category: Allotted Resource
+  subcategory: IP Mux Demux
+  resourceVendor: '1'
+  resourceVendorRelease: '1'
+imports:
+- Alloted resource:
+    file: resource-AllotedResource-template.yml
+topology_template:
+  groups:
+    vfmoduleVmmeModule-1:
+      members:
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      metadata:
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelName: "vMME::module-1"
+        vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+      properties:
+        artifacts:
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+        availability_zone_count: 2
+        contrail_service_instance: true
+        vf_module_description: "vMME expansion VF Module"
+        vf_module_label: "vMME Expansion VF Module"
+        vf_module_type: Expansion
+        volume_group: false
+      type: org.openecomp.groups.VfModule
+  node_templates:
+    allotedresource1:
+      type: org.openecomp.resource.vfc.AllottedResource
+      metadata:
+        invariantUUID: 666b409b-5614-41a8-945e-a53d68f5d439
+        UUID: df0c1c4d-1756-4b2a-998e-73f9f4d77afa
+        customizationUUID: 1c217567-5093-41f5-86e6-22c97ef24e75
+        version: '1.0'
+        name: Alloted resource
+        description: This is a VFC- Allotted resource
+        type: VFC
+        category: Allotted Resource
+        subcategory: Allotted Resource
+      properties:
+        role: name
+        ecomp_naming:
+          naming_policy: test
+          ecomp_generated_naming: false
+          supplemental_data:
+            Key1: key1
+        providing_service_invariant_uuid: 34a4d119-06bc-4ab4-8c5a-a498d638297c
+        min_instances: 1
+        max_instances: 1
+        providing_service_uuid: e14a509f-b611-4b30-b38c-bc7f11b679aa
+        providing_service_name: vVIGaaS
+        ecomp_homing:
+          instance_node_target: Test
+          homing_policy: Test
+          supplemental_data:
+            Key: key
+          ecomp_selected_instance_node_target: false
+    FSB1:
+      capabilities:
+        monitoring_capabilty:
+          properties:
+            name: high_cpu
+        nfv_compute:
+          properties:
+            vfc_flavor:
+              get_input: fsb1_vfc_flavor
+        scaling_capability:
+          properties:
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata:
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties:
+        vfc_description: FSB1
+        vfc_ecomp_name: false
+        vfc_image_name:
+          get_input: fsb1_vfc_image_name
+        vfc_instance_name:
+          get_input: fsb1_vfc_instance_name
+        vfc_type_tag:
+          get_input: fsb1_vfc_type_tag
+      requirements:
+        -
+          binding:
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        -
+          binding:
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        -
+          binding:
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    FSB2:
+      capabilities:
+        monitoring_capability:
+          properties:
+            name: cpu_load
+        nfv_compute:
+          properties:
+            vfc_flavor:
+              get_input: fsb2_vfc_flavor
+        scaling_capability:
+          properties:
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata:
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties:
+        vfc_description: FSB2
+        vfc_ecomp_name: false
+        vfc_image_name:
+          get_input: fsb2_vfc_image_name
+        vfc_instance_name:
+          get_input: fsb2_vfc_instance_name
+        vfc_type_tag:
+          get_input: fsb2_vfc_type_tag
+      requirements:
+        -
+          binding:
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        -
+          binding:
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        -
+          binding:
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    NCB1:
+      capabilities:
+        monitoring_capability:
+          properties:
+            name: cpu_load
+        nfv_compute:
+          properties:
+            vfc_flavor:
+              get_input: ncb1_vfc_flavor
+        scaling_capability:
+          properties:
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata:
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties:
+        vfc_description: NCB1
+        vfc_ecomp_name: false
+        vfc_image_name:
+          get_input: ncb1_vfc_image_name
+        vfc_instance_name:
+          get_input: ncb1_vfc_instance_name
+        vfc_type_tag:
+          get_input: ncb1_vfc_type_tag
+      requirements:
+        -
+          binding:
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        -
+          binding:
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        -
+          binding:
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.AllottedResource
+    capabilities:
+      Alloted resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Alloted resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Alloted resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource-template_WithDiffVersionOfSameL3Network.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource-template_WithDiffVersionOfSameL3Network.yml
new file mode 100644
index 0000000..c80e701
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource-template_WithDiffVersionOfSameL3Network.yml
@@ -0,0 +1,78 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+  UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+  name: Allotted Resource
+  description: This is a VF - Allotted resource
+  type: VF
+  category: Allotted Resource
+  subcategory: Allotted Resource
+  resourceVendor: '1'
+  resourceVendorRelease: '1'
+imports:
+- Alloted resource:
+    file: resource-AllotedResource-template.yml
+topology_template:
+  node_templates:
+    Alloted resource 1:
+      type: org.openecomp.resource.vfc.AllottedResource
+      metadata:
+        invariantUUID: 666b409b-5614-41a8-945e-a53d68f5d439
+        UUID: df0c1c4d-1756-4b2a-998e-73f9f4d77afa
+        version: '1.0'
+        name: Alloted resource
+        description: This is a VFC- Allotted resource
+        type: VFC
+        category: Allotted Resource
+        subcategory: Allotted Resource
+      properties:
+        role: name
+        ecomp_naming:
+          naming_policy: test
+          ecomp_generated_naming: false
+          supplemental_data:
+            Key1: key1
+        providing_service_invariant_uuid: 34a4d119-06bc-4ab4-8c5a-a498d638297c
+        min_instances: 1
+        max_instances: 1
+        providing_service_uuid: e14a509f-b611-4b30-b38c-bc7f11b679aa
+        providing_service_name: vVIGaaS
+        ecomp_homing:
+          instance_node_target: Test
+          homing_policy: Test
+          supplemental_data:
+            Key: key
+          ecomp_selected_instance_node_target: false
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.AllottedResource
+    capabilities:
+      Alloted resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Alloted resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Alloted resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource-template_WithDupL3Network.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource-template_WithDupL3Network.yml
new file mode 100644
index 0000000..c80e701
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource-template_WithDupL3Network.yml
@@ -0,0 +1,78 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+  UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+  name: Allotted Resource
+  description: This is a VF - Allotted resource
+  type: VF
+  category: Allotted Resource
+  subcategory: Allotted Resource
+  resourceVendor: '1'
+  resourceVendorRelease: '1'
+imports:
+- Alloted resource:
+    file: resource-AllotedResource-template.yml
+topology_template:
+  node_templates:
+    Alloted resource 1:
+      type: org.openecomp.resource.vfc.AllottedResource
+      metadata:
+        invariantUUID: 666b409b-5614-41a8-945e-a53d68f5d439
+        UUID: df0c1c4d-1756-4b2a-998e-73f9f4d77afa
+        version: '1.0'
+        name: Alloted resource
+        description: This is a VFC- Allotted resource
+        type: VFC
+        category: Allotted Resource
+        subcategory: Allotted Resource
+      properties:
+        role: name
+        ecomp_naming:
+          naming_policy: test
+          ecomp_generated_naming: false
+          supplemental_data:
+            Key1: key1
+        providing_service_invariant_uuid: 34a4d119-06bc-4ab4-8c5a-a498d638297c
+        min_instances: 1
+        max_instances: 1
+        providing_service_uuid: e14a509f-b611-4b30-b38c-bc7f11b679aa
+        providing_service_name: vVIGaaS
+        ecomp_homing:
+          instance_node_target: Test
+          homing_policy: Test
+          supplemental_data:
+            Key: key
+          ecomp_selected_instance_node_target: false
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.AllottedResource
+    capabilities:
+      Alloted resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Alloted resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Alloted resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource-template_WithL3Network.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource-template_WithL3Network.yml
new file mode 100644
index 0000000..c80e701
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource-template_WithL3Network.yml
@@ -0,0 +1,78 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+  UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+  name: Allotted Resource
+  description: This is a VF - Allotted resource
+  type: VF
+  category: Allotted Resource
+  subcategory: Allotted Resource
+  resourceVendor: '1'
+  resourceVendorRelease: '1'
+imports:
+- Alloted resource:
+    file: resource-AllotedResource-template.yml
+topology_template:
+  node_templates:
+    Alloted resource 1:
+      type: org.openecomp.resource.vfc.AllottedResource
+      metadata:
+        invariantUUID: 666b409b-5614-41a8-945e-a53d68f5d439
+        UUID: df0c1c4d-1756-4b2a-998e-73f9f4d77afa
+        version: '1.0'
+        name: Alloted resource
+        description: This is a VFC- Allotted resource
+        type: VFC
+        category: Allotted Resource
+        subcategory: Allotted Resource
+      properties:
+        role: name
+        ecomp_naming:
+          naming_policy: test
+          ecomp_generated_naming: false
+          supplemental_data:
+            Key1: key1
+        providing_service_invariant_uuid: 34a4d119-06bc-4ab4-8c5a-a498d638297c
+        min_instances: 1
+        max_instances: 1
+        providing_service_uuid: e14a509f-b611-4b30-b38c-bc7f11b679aa
+        providing_service_name: vVIGaaS
+        ecomp_homing:
+          instance_node_target: Test
+          homing_policy: Test
+          supplemental_data:
+            Key: key
+          ecomp_selected_instance_node_target: false
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.AllottedResource
+    capabilities:
+      Alloted resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Alloted resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Alloted resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource-template_WithL3NetworkInVFMod.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource-template_WithL3NetworkInVFMod.yml
new file mode 100644
index 0000000..c80e701
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource-template_WithL3NetworkInVFMod.yml
@@ -0,0 +1,78 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+  UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+  name: Allotted Resource
+  description: This is a VF - Allotted resource
+  type: VF
+  category: Allotted Resource
+  subcategory: Allotted Resource
+  resourceVendor: '1'
+  resourceVendorRelease: '1'
+imports:
+- Alloted resource:
+    file: resource-AllotedResource-template.yml
+topology_template:
+  node_templates:
+    Alloted resource 1:
+      type: org.openecomp.resource.vfc.AllottedResource
+      metadata:
+        invariantUUID: 666b409b-5614-41a8-945e-a53d68f5d439
+        UUID: df0c1c4d-1756-4b2a-998e-73f9f4d77afa
+        version: '1.0'
+        name: Alloted resource
+        description: This is a VFC- Allotted resource
+        type: VFC
+        category: Allotted Resource
+        subcategory: Allotted Resource
+      properties:
+        role: name
+        ecomp_naming:
+          naming_policy: test
+          ecomp_generated_naming: false
+          supplemental_data:
+            Key1: key1
+        providing_service_invariant_uuid: 34a4d119-06bc-4ab4-8c5a-a498d638297c
+        min_instances: 1
+        max_instances: 1
+        providing_service_uuid: e14a509f-b611-4b30-b38c-bc7f11b679aa
+        providing_service_name: vVIGaaS
+        ecomp_homing:
+          instance_node_target: Test
+          homing_policy: Test
+          supplemental_data:
+            Key: key
+          ecomp_selected_instance_node_target: false
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.AllottedResource
+    capabilities:
+      Alloted resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Alloted resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Alloted resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource1SameInvariant-IpMux-template.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource1SameInvariant-IpMux-template.yml
new file mode 100644
index 0000000..76ae589
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource1SameInvariant-IpMux-template.yml
@@ -0,0 +1,81 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+  UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+  name: Allotted Resource
+  description: This is a VF - Allotted resource
+  type: VF
+  category: Allotted Resource
+  subcategory: IP Mux Demux
+  resourceVendor: '1'
+  resourceVendorRelease: '1'
+imports:
+- Alloted resource:
+    file: resource-AllotedResource-template.yml
+topology_template:
+  node_templates:
+    allotedresource1:
+      type: org.openecomp.resource.vfc.AllottedResource
+      metadata:
+        invariantUUID: 666b409b-5614-41a8-945e-a53d68f5d439
+        UUID: df0c1c4d-1756-4b2a-998e-73f9f4d77afa
+        customizationUUID: 1c217567-5093-41f5-86e6-22c97ef24e75
+        version: '1.0'
+        name: Alloted resource
+        description: This is a VFC- Allotted resource
+        type: VFC
+        category: Allotted Resource
+        subcategory: Allotted Resource
+      properties:
+        role: name
+        ecomp_naming:
+          naming_policy: test
+          ecomp_generated_naming: false
+          supplemental_data:
+            Key1: key1
+        providing_service_invariant_uuid: 34a4d119-06bc-4ab4-8c5a-a498d638297c
+        min_instances: 1
+        max_instances: 1
+        providing_service_uuid: e14a509f-b611-4b30-b38c-bc7f11b678aa
+        providing_service_name: vVIGaaS
+        ecomp_homing:
+          instance_node_target: Test
+          homing_policy: Test
+          supplemental_data:
+            Key: key
+          ecomp_selected_instance_node_target: false
+  groups: {
+    }
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.AllottedResource
+    capabilities:
+      Alloted resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Alloted resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Alloted resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource2SameInvariant-IpMux-template.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource2SameInvariant-IpMux-template.yml
new file mode 100644
index 0000000..afd085d
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-AllottedResource2SameInvariant-IpMux-template.yml
@@ -0,0 +1,81 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+  UUID: f64afdc3-6308-4f0c-a476-0d39c8a1fb4d
+  name: Allotted Resource
+  description: This is a VF - Allotted resource
+  type: VF
+  category: Allotted Resource
+  subcategory: IP Mux Demux
+  resourceVendor: '1'
+  resourceVendorRelease: '1'
+imports:
+- Alloted resource:
+    file: resource-AllotedResource-template.yml
+topology_template:
+  node_templates:
+    allotedresource1:
+      type: org.openecomp.resource.vfc.AllottedResource
+      metadata:
+        invariantUUID: 666b409b-5614-41a8-945e-a53d68f5d439
+        UUID: df0c1c4d-1756-4b2a-998e-73f9f4d77afa
+        customizationUUID: 1c217567-5093-41f5-86e6-22c97ef24e75
+        version: '1.0'
+        name: Alloted resource
+        description: This is a VFC- Allotted resource
+        type: VFC
+        category: Allotted Resource
+        subcategory: Allotted Resource
+      properties:
+        role: name
+        ecomp_naming:
+          naming_policy: test
+          ecomp_generated_naming: false
+          supplemental_data:
+            Key1: key1
+        providing_service_invariant_uuid: 34a4d119-06bc-4ab4-8c5a-a498d638297c
+        min_instances: 1
+        max_instances: 1
+        providing_service_uuid: e14a509f-b611-4b30-b38c-bc7f11b679aa
+        providing_service_name: vVIGaaS
+        ecomp_homing:
+          instance_node_target: Test
+          homing_policy: Test
+          supplemental_data:
+            Key: key
+          ecomp_selected_instance_node_target: false
+  groups: {
+    }
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.AllottedResource
+    capabilities:
+      Alloted resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Alloted resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Alloted resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-AllottedResourceSameInvariantSameVers-IpMux-template.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-AllottedResourceSameInvariantSameVers-IpMux-template.yml
new file mode 100644
index 0000000..2852d03
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-AllottedResourceSameInvariantSameVers-IpMux-template.yml
@@ -0,0 +1,81 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+  UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+  name: Allotted Resource
+  description: This is a VF - Allotted resource
+  type: VF
+  category: Allotted Resource
+  subcategory: IP Mux Demux
+  resourceVendor: '1'
+  resourceVendorRelease: '1'
+imports:
+- Alloted resource:
+    file: resource-AllotedResource-template.yml
+topology_template:
+  node_templates:
+    allotedresource1:
+      type: org.openecomp.resource.vfc.AllottedResource
+      metadata:
+        invariantUUID: 666b409b-5614-41a8-945e-a53d68f5d439
+        UUID: df0c1c4d-1756-4b2a-998e-73f9f4d77afa
+        customizationUUID: 1c217567-5093-41f5-86e6-22c97ef24e75
+        version: '1.0'
+        name: Alloted resource
+        description: This is a VFC- Allotted resource
+        type: VFC
+        category: Allotted Resource
+        subcategory: Allotted Resource
+      properties:
+        role: name
+        ecomp_naming:
+          naming_policy: test
+          ecomp_generated_naming: false
+          supplemental_data:
+            Key1: key1
+        providing_service_invariant_uuid: 34a4d119-06bc-4ab4-8c5a-a498d638297c
+        min_instances: 1
+        max_instances: 1
+        providing_service_uuid: e14a509f-b611-4b30-b38c-bc7f11b679aa
+        providing_service_name: vVIGaaS
+        ecomp_homing:
+          instance_node_target: Test
+          homing_policy: Test
+          supplemental_data:
+            Key: key
+          ecomp_selected_instance_node_target: false
+  groups: {
+    }
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.AllottedResource
+    capabilities:
+      Alloted resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Alloted resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Alloted resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-Extvl-template_1_WithDiffVersionOfSameL3Network.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-Extvl-template_1_WithDiffVersionOfSameL3Network.yml
new file mode 100644
index 0000000..e474f9a
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-Extvl-template_1_WithDiffVersionOfSameL3Network.yml
@@ -0,0 +1,61 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: f148dbb0-8c53-466d-9687-791c0e9d40cf
+  UUID: 3f8fa4d2-2b86-4b36-bbc8-ffb8f9f57433
+  name: ExtVL2
+  description: OPENECOMP generic virtual link (network) base type for all other service-level and global networks
+  type: VL
+  category: Generic
+  subcategory: Network Elements
+  resourceVendor: OPENECOMP (Tosca)
+  resourceVendorRelease: 1.0.0.wd03
+node_types:
+  org.openecomp.resource.vl.extVL:
+    derived_from: tosca.nodes.Root
+    description: OPENECOMP generic virtual link (network) base type for all other service-level and global networks
+    properties:
+      physical_network:
+        type: org.openecomp.datatypes.network.PhysicalNetwork
+      network_role:
+        type: string
+        description: |
+          Unique label that defines the role that this network performs.   example: vce oam network, vnat sr-iov1 network
+      network_assignments:
+        type: org.openecomp.datatypes.network.NetworkAssignments
+      network_flows:
+        type: org.openecomp.datatypes.network.NetworkFlows
+      vl_artifacts:
+        type: map
+        description: List of artifacts associated with the VL
+        entry_schema:
+          type: org.openecomp.datatypes.Artifact
+      network_scope:
+        type: string
+        description: |
+          Uniquely identifies the network scope. Valid values for the network scope   includes: VF - VF-level network. Intra-VF network which connects the VFCs (VMs) inside the VF. SERVICE - Service-level network. Intra-Service network which connects  the VFs within the service GLOBAL - Global network which can be shared by multiple services
+      network_ecomp_naming:
+        type: org.openecomp.datatypes.EcompNaming
+      network_type:
+        type: string
+        description: OPENECOMP supported network types.
+      network_technology:
+        type: string
+        description: OPENECOMP supported network technology
+      network_homing:
+        type: org.openecomp.datatypes.EcompHoming
+    capabilities:
+      virtual_linkable:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 1
+        - UNBOUNDED
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-Extvl-template_WithDiffVersionOfSameL3Network.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-Extvl-template_WithDiffVersionOfSameL3Network.yml
new file mode 100644
index 0000000..aa32d4a
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-Extvl-template_WithDiffVersionOfSameL3Network.yml
@@ -0,0 +1,61 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: f148dbb0-8c53-466d-9687-791c0e9d40cf
+  UUID: 3f8fa4d2-2b86-4b36-bbc8-ffb8f9f57468
+  name: ExtVL1
+  description: OPENECOMP generic virtual link (network) base type for all other service-level and global networks
+  type: VL
+  category: Generic
+  subcategory: Network Elements
+  resourceVendor: OPENECOMP (Tosca)
+  resourceVendorRelease: 1.0.0.wd03
+node_types:
+  org.openecomp.resource.vl.extVL:
+    derived_from: tosca.nodes.Root
+    description: OPENECOMP generic virtual link (network) base type for all other service-level and global networks
+    properties:
+      physical_network:
+        type: org.openecomp.datatypes.network.PhysicalNetwork
+      network_role:
+        type: string
+        description: |
+          Unique label that defines the role that this network performs.   example: vce oam network, vnat sr-iov1 network
+      network_assignments:
+        type: org.openecomp.datatypes.network.NetworkAssignments
+      network_flows:
+        type: org.openecomp.datatypes.network.NetworkFlows
+      vl_artifacts:
+        type: map
+        description: List of artifacts associated with the VL
+        entry_schema:
+          type: org.openecomp.datatypes.Artifact
+      network_scope:
+        type: string
+        description: |
+          Uniquely identifies the network scope. Valid values for the network scope   includes: VF - VF-level network. Intra-VF network which connects the VFCs (VMs) inside the VF. SERVICE - Service-level network. Intra-Service network which connects  the VFs within the service GLOBAL - Global network which can be shared by multiple services
+      network_ecomp_naming:
+        type: org.openecomp.datatypes.EcompNaming
+      network_type:
+        type: string
+        description: OPENECOMP supported network types.
+      network_technology:
+        type: string
+        description: OPENECOMP supported network technology
+      network_homing:
+        type: org.openecomp.datatypes.EcompHoming
+    capabilities:
+      virtual_linkable:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 1
+        - UNBOUNDED
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-Extvl-template_WithDupL3Network.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-Extvl-template_WithDupL3Network.yml
new file mode 100644
index 0000000..512d62b
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-Extvl-template_WithDupL3Network.yml
@@ -0,0 +1,61 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: f148dbb0-8c53-466d-9687-791c0e9d40cf
+  UUID: 3f8fa4d2-2b86-4b36-bbc8-ffb8f9f57468
+  name: ExtVL
+  description: OPENECOMP generic virtual link (network) base type for all other service-level and global networks
+  type: VL
+  category: Generic
+  subcategory: Network Elements
+  resourceVendor: OPENECOMP (Tosca)
+  resourceVendorRelease: 1.0.0.wd03
+node_types:
+  org.openecomp.resource.vl.extVL:
+    derived_from: tosca.nodes.Root
+    description: OPENECOMP generic virtual link (network) base type for all other service-level and global networks
+    properties:
+      physical_network:
+        type: org.openecomp.datatypes.network.PhysicalNetwork
+      network_role:
+        type: string
+        description: |
+          Unique label that defines the role that this network performs.   example: vce oam network, vnat sr-iov1 network
+      network_assignments:
+        type: org.openecomp.datatypes.network.NetworkAssignments
+      network_flows:
+        type: org.openecomp.datatypes.network.NetworkFlows
+      vl_artifacts:
+        type: map
+        description: List of artifacts associated with the VL
+        entry_schema:
+          type: org.openecomp.datatypes.Artifact
+      network_scope:
+        type: string
+        description: |
+          Uniquely identifies the network scope. Valid values for the network scope   includes: VF - VF-level network. Intra-VF network which connects the VFCs (VMs) inside the VF. SERVICE - Service-level network. Intra-Service network which connects  the VFs within the service GLOBAL - Global network which can be shared by multiple services
+      network_ecomp_naming:
+        type: org.openecomp.datatypes.EcompNaming
+      network_type:
+        type: string
+        description: OPENECOMP supported network types.
+      network_technology:
+        type: string
+        description: OPENECOMP supported network technology
+      network_homing:
+        type: org.openecomp.datatypes.EcompHoming
+    capabilities:
+      virtual_linkable:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 1
+        - UNBOUNDED
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-Extvl-template_WithL3Network.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-Extvl-template_WithL3Network.yml
new file mode 100644
index 0000000..512d62b
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-Extvl-template_WithL3Network.yml
@@ -0,0 +1,61 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: f148dbb0-8c53-466d-9687-791c0e9d40cf
+  UUID: 3f8fa4d2-2b86-4b36-bbc8-ffb8f9f57468
+  name: ExtVL
+  description: OPENECOMP generic virtual link (network) base type for all other service-level and global networks
+  type: VL
+  category: Generic
+  subcategory: Network Elements
+  resourceVendor: OPENECOMP (Tosca)
+  resourceVendorRelease: 1.0.0.wd03
+node_types:
+  org.openecomp.resource.vl.extVL:
+    derived_from: tosca.nodes.Root
+    description: OPENECOMP generic virtual link (network) base type for all other service-level and global networks
+    properties:
+      physical_network:
+        type: org.openecomp.datatypes.network.PhysicalNetwork
+      network_role:
+        type: string
+        description: |
+          Unique label that defines the role that this network performs.   example: vce oam network, vnat sr-iov1 network
+      network_assignments:
+        type: org.openecomp.datatypes.network.NetworkAssignments
+      network_flows:
+        type: org.openecomp.datatypes.network.NetworkFlows
+      vl_artifacts:
+        type: map
+        description: List of artifacts associated with the VL
+        entry_schema:
+          type: org.openecomp.datatypes.Artifact
+      network_scope:
+        type: string
+        description: |
+          Uniquely identifies the network scope. Valid values for the network scope   includes: VF - VF-level network. Intra-VF network which connects the VFCs (VMs) inside the VF. SERVICE - Service-level network. Intra-Service network which connects  the VFs within the service GLOBAL - Global network which can be shared by multiple services
+      network_ecomp_naming:
+        type: org.openecomp.datatypes.EcompNaming
+      network_type:
+        type: string
+        description: OPENECOMP supported network types.
+      network_technology:
+        type: string
+        description: OPENECOMP supported network technology
+      network_homing:
+        type: org.openecomp.datatypes.EcompHoming
+    capabilities:
+      virtual_linkable:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 1
+        - UNBOUNDED
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-IpMuxDemux-template.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-IpMuxDemux-template.yml
new file mode 100644
index 0000000..5b4ffd9
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-IpMuxDemux-template.yml
@@ -0,0 +1,83 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: ec95fbf0-5d05-4fea-a11e-27869c0032e2
+  UUID: 41e4949f-85b3-4bc5-b7a2-2c166bf87270
+  name: IP_Mux_Demux
+  description: nbvnbb
+  type: VF
+  category: Allotted Resource
+  subcategory: IP Mux Demux
+  resourceVendor: stella
+  resourceVendorRelease: '1.0'
+imports:
+- newAllotted:
+    file: resource-Newallotted-template.yml
+topology_template:
+  inputs:
+    role:
+      type: string
+    ecomp_naming:
+      type: string
+    max_instances:
+      type: string
+    min_instances:
+      type: string
+    ecomp_homing:
+      type: string
+  node_templates:
+    allotedresource1:
+      type: org.openecomp.resource.vfc.AllottedResource
+      metadata:
+        invariantUUID: cce8d00f-1a7a-439d-b186-207599f8bbf2
+        UUID: 468a08a2-10a7-4ee7-86eb-dcf2e74a028f
+        customizationUUID: e7a3e375-9bec-4552-88d2-26cb5dcf580d
+        version: '1.0'
+        name: newAllotted
+        description: vcxvcx
+        type: VFC
+        category: Allotted Resource
+        subcategory: IP Mux Demux
+      properties:
+        ecomp_naming:
+          naming_policy:
+            get input: ecomp_naming
+        providing_service_invariant_uuid: 2bec5c69-b64e-4ffe-b74a-62f14d255d46
+        min_instances: 1
+        max_instances: 1
+        providing_service_uuid: 8ca1e477-77ec-47ed-a498-303fd0de9080
+        providing_service_name: ServiceAllMichael1801
+  groups: {
+    }
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.IpMuxDemux
+    capabilities:
+      Alloted resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Alloted resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Alloted resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-IpMuxDemux-template_AllRes_VF.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-IpMuxDemux-template_AllRes_VF.yml
new file mode 100644
index 0000000..d8885bb
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-IpMuxDemux-template_AllRes_VF.yml
@@ -0,0 +1,81 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: 707b2850-e830-4b00-9902-879f44ac05a4
+  UUID: 495b483b-282a-45df-bbfe-63d1d1d80813
+  name: IP_Mux_Demux
+  description: IP_Mux_Demux
+  type: VF
+  category: Allotted Resource
+  subcategory: IP Mux Demux
+  resourceVendor: '1'
+  resourceVendorRelease: '1'
+imports:
+- Allotedresource:
+    file: resource-Allotedresource-template.yml
+topology_template:
+  inputs:
+    role:
+      type: string
+    ecomp_naming:
+      type: string
+    max_instances:
+      type: string
+    min_instances:
+      type: string
+    ecomp_homing:
+      type: string
+  node_templates:
+    Alloted resource 1:
+      type: org.openecomp.resource.vfc.AllottedResource
+      metadata:
+        invariantUUID: bc0bebc1-6dc1-4637-883e-aed77bffd63c
+        UUID: 7763d3a3-048f-4e5b-96c5-e7818dbc066a
+        customizationUUID: 5eac2a36-bcb5-4158-ace4-802b81e87248
+        version: '1.0'
+        name: Allotedresource
+        description: Allotedresource
+        type: VFC
+        category: Allotted Resource
+        subcategory: IP Mux Demux
+      properties:
+        ecomp_naming:
+          naming_policy:
+            get input: ecomp_naming
+        providing_service_invariant_uuid: e42ea8ff-1862-43f4-a597-4b885cf3c6e5
+        min_instances: 1
+        max_instances: 1
+        providing_service_uuid: 2fb4b63d-7ec8-4fc0-98c7-a1c51fb4b794
+        providing_service_name: vVIGaaS
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.IpMuxDemux
+    capabilities:
+      Alloted resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Alloted resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Alloted resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-IpMuxDemux-template_WithOutDepSerId.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-IpMuxDemux-template_WithOutDepSerId.yml
new file mode 100644
index 0000000..2e06cf4
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-IpMuxDemux-template_WithOutDepSerId.yml
@@ -0,0 +1,80 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: 707b2850-e830-4b00-9902-879f44ac05a4
+  UUID: 495b483b-282a-45df-bbfe-63d1d1d80813
+  name: IP_Mux_Demux
+  description: IP_Mux_Demux
+  type: VF
+  category: Allotted Resource
+  subcategory: Allotted Resource
+  resourceVendor: '1'
+  resourceVendorRelease: '1'
+imports:
+- Allotedresource:
+    file: resource-Allotedresource-template.yml
+topology_template:
+  inputs:
+    role:
+      type: string
+    ecomp_naming:
+      type: string
+    max_instances:
+      type: string
+    min_instances:
+      type: string
+    ecomp_homing:
+      type: string
+  node_templates:
+    Alloted resource 1:
+      type: org.openecomp.resource.vfc.AllottedResource
+      metadata:
+        invariantUUID: bc0bebc1-6dc1-4637-883e-aed77bffd63c
+        UUID: 7763d3a3-048f-4e5b-96c5-e7818dbc066a
+        customizationUUID: 5eac2a36-bcb5-4158-ace4-802b81e87248
+        version: '1.0'
+        name: Allotedresource
+        description: Allotedresource
+        type: VFC
+        category: Allotted Resource
+        subcategory: Allotted Resource
+      properties:
+        ecomp_naming:
+          naming_policy:
+            get input: ecomp_naming
+        providing_service_invariant_uuid:
+        min_instances: 1
+        max_instances: 1
+        providing_service_uuid:
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.IpMuxDemux
+    capabilities:
+      Alloted resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Alloted resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Alloted resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-ServiceAdmin-template_AllRes_VF.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-ServiceAdmin-template_AllRes_VF.yml
new file mode 100644
index 0000000..549c18b
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-ServiceAdmin-template_AllRes_VF.yml
@@ -0,0 +1,81 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: 0df08d3e-9701-4f5a-b3ed-82a0b504b366
+  UUID: a9c6246c-0807-4a43-a64c-442a170c2088
+  name: service_admin
+  description: service_admin
+  type: VF
+  category: Allotted Resource
+  subcategory: Service admin
+  resourceVendor: '1'
+  resourceVendorRelease: '1'
+imports:
+- Allotedresource:
+    file: resource-Allotedresource-template.yml
+topology_template:
+  inputs:
+    role:
+      type: string
+    ecomp_naming:
+      type: string
+    max_instances:
+      type: string
+    min_instances:
+      type: string
+    ecomp_homing:
+      type: string
+  node_templates:
+    Alloted resource 1:
+      type: org.openecomp.resource.vfc.AllottedResource
+      metadata:
+        invariantUUID: bc0bebc1-6dc1-4637-883e-aed77bffd63c
+        UUID: 7763d3a3-048f-4e5b-96c5-e7818dbc066a
+        customizationUUID: f61f785d-2c82-4d6d-9184-8cbdf2df4da0
+        version: '1.0'
+        name: Allotedresource
+        description: Allotedresource
+        type: VFC
+        category: Allotted Resource
+        subcategory: Service admin
+      properties:
+        ecomp_naming:
+          naming_policy:
+            get input: ecomp_naming
+        providing_service_invariant_uuid: e42ea8ff-1862-43f4-a597-4b885cf3c6e5
+        min_instances: 1
+        max_instances: 1
+        providing_service_uuid: 2fb4b63d-7ec8-4fc0-98c7-a1c51fb4b794
+        providing_service_name: HNPortalaaS
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.ServiceAdmin
+    capabilities:
+      Alloted resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Alloted resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Alloted resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-ServiceAdmin-template_WithOutDepSerId.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-ServiceAdmin-template_WithOutDepSerId.yml
new file mode 100644
index 0000000..c8a641d
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-ServiceAdmin-template_WithOutDepSerId.yml
@@ -0,0 +1,81 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: 0df08d3e-9701-4f5a-b3ed-82a0b504b366
+  UUID: a9c6246c-0807-4a43-a64c-442a170c2088
+  name: service_admin
+  description: service_admin
+  type: VF
+  category: Allotted Resource
+  subcategory: Allotted Resource
+  resourceVendor: '1'
+  resourceVendorRelease: '1'
+imports:
+- Allotedresource:
+    file: resource-Allotedresource-template.yml
+topology_template:
+  inputs:
+    role:
+      type: string
+    ecomp_naming:
+      type: string
+    max_instances:
+      type: string
+    min_instances:
+      type: string
+    ecomp_homing:
+      type: string
+  node_templates:
+    Alloted resource 1:
+      type: org.openecomp.resource.vfc.AllottedResource
+      metadata:
+        invariantUUID: bc0bebc1-6dc1-4637-883e-aed77bffd63c
+        UUID: 7763d3a3-048f-4e5b-96c5-e7818dbc066a
+        customizationUUID: f61f785d-2c82-4d6d-9184-8cbdf2df4da0
+        version: '1.0'
+        name: Allotedresource
+        description: Allotedresource
+        type: VFC
+        category: Allotted Resource
+        subcategory: Allotted Resource
+      properties:
+        ecomp_naming:
+          naming_policy:
+            get input: ecomp_naming
+        providing_service_invariant_uuid:
+        min_instances: 1
+        max_instances: 1
+        providing_service_uuid:
+        providing_service_name: HNPortalaaS
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.ServiceAdmin
+    capabilities:
+      Alloted resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Alloted resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Alloted resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-TunnelXconn-template.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-TunnelXconn-template.yml
new file mode 100644
index 0000000..434757d
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-TunnelXconn-template.yml
@@ -0,0 +1,83 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: fadbb726-37b6-4939-ba78-9e86974232c5
+  UUID: 68d68207-007a-49f3-a9ae-5f88757d5061
+  name: Tunnel_XConn
+  description: stella
+  type: VF
+  category: Allotted Resource
+  subcategory: Tunnel XConnect
+  resourceVendor: stella
+  resourceVendorRelease: '1.0'
+imports:
+- newAllotted:
+    file: resource-Newallotted-template.yml
+topology_template:
+  inputs:
+    role:
+      type: string
+    ecomp_naming:
+      type: string
+    max_instances:
+      type: string
+    min_instances:
+      type: string
+    ecomp_homing:
+      type: string
+  node_templates:
+    allotedresource1:
+      type: org.openecomp.resource.vfc.AllottedResource
+      metadata:
+        invariantUUID: cce8d00f-1a7a-439d-b186-207599f8bbf2
+        UUID: 468a08a2-10a7-4ee7-86eb-dcf2e74a028f
+        customizationUUID: a92f5f2e-fe08-4711-84f6-2e64608aca13
+        version: '1.0'
+        name: newAllotted
+        description: vcxvcx
+        type: VFC
+        category: Allotted Resource
+        subcategory: IP Mux Demux
+      properties:
+        ecomp_naming:
+          naming_policy:
+            get input: ecomp_naming
+        providing_service_invariant_uuid: c964ef13-9d61-4d1b-a1a6-7060f3d7ddb4
+        min_instances: 1
+        max_instances: 1
+        providing_service_uuid: 3d6f84f5-84fd-441a-8fd8-401f71196712
+        providing_service_name: ServiceSprint38stella
+  groups: {
+    }
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.TunnelXconn
+    capabilities:
+      Alloted resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Alloted resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Alloted resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-TunnelXconn-template_AllRes_VF.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-TunnelXconn-template_AllRes_VF.yml
new file mode 100644
index 0000000..1eb97a0
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-TunnelXconn-template_AllRes_VF.yml
@@ -0,0 +1,81 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: 63b95d9a-9c89-40d3-a646-36a1418c5246
+  UUID: ae79ba1b-5d12-4813-b01c-755fa6c800bb
+  name: Tunnel_XConn
+  description: Tunnel_XConn
+  type: VF
+  category: Allotted Resource
+  subcategory: Tunnel XConnect
+  resourceVendor: '1'
+  resourceVendorRelease: '1'
+imports:
+- Allotedresource:
+    file: resource-Allotedresource-template.yml
+topology_template:
+  inputs:
+    role:
+      type: string
+    ecomp_naming:
+      type: string
+    min_instances:
+      type: string
+    max_instances:
+      type: string
+    ecomp_homing:
+      type: string
+  node_templates:
+    Alloted resource 1:
+      type: org.openecomp.resource.vfc.AllottedResource
+      metadata:
+        invariantUUID: bc0bebc1-6dc1-4637-883e-aed77bffd63c
+        UUID: 7763d3a3-048f-4e5b-96c5-e7818dbc066a
+        customizationUUID: 22ca20ca-1577-46d3-b3ef-77483cca37d6
+        version: '1.0'
+        name: Allotedresource
+        description: Allotedresource
+        type: VFC
+        category: Allotted Resource
+        subcategory: Tunnel XConnect
+      properties:
+        ecomp_naming:
+          naming_policy:
+            get input: ecomp_naming
+        providing_service_invariant_uuid: 34a4d119-06bc-4ab4-8c5a-a498d638297c
+        min_instances: 1
+        max_instances: 1
+        providing_service_uuid: 2fb4b63d-7ec8-4fc0-98c7-a1c51fb4b794
+        providing_service_name: vVIGaaS
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.TunnelXconn
+    capabilities:
+      Alloted resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Alloted resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Alloted resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-TunnelXconn-template_WithOutDepSerId.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-TunnelXconn-template_WithOutDepSerId.yml
new file mode 100644
index 0000000..eb248d1
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-TunnelXconn-template_WithOutDepSerId.yml
@@ -0,0 +1,81 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: 63b95d9a-9c89-40d3-a646-36a1418c5246
+  UUID: ae79ba1b-5d12-4813-b01c-755fa6c800bb
+  name: Tunnel_XConn
+  description: Tunnel_XConn
+  type: VF
+  category: Allotted Resource
+  subcategory: Allotted Resource
+  resourceVendor: '1'
+  resourceVendorRelease: '1'
+imports:
+- Allotedresource:
+    file: resource-Allotedresource-template.yml
+topology_template:
+  inputs:
+    role:
+      type: string
+    ecomp_naming:
+      type: string
+    min_instances:
+      type: string
+    max_instances:
+      type: string
+    ecomp_homing:
+      type: string
+  node_templates:
+    Alloted resource 1:
+      type: org.openecomp.resource.vfc.AllottedResource
+      metadata:
+        invariantUUID: bc0bebc1-6dc1-4637-883e-aed77bffd63c
+        UUID: 7763d3a3-048f-4e5b-96c5-e7818dbc066a
+        customizationUUID: 22ca20ca-1577-46d3-b3ef-77483cca37d6
+        version: '1.0'
+        name: Allotedresource
+        description: Allotedresource
+        type: VFC
+        category: Allotted Resource
+        subcategory: Allotted Resource
+      properties:
+        ecomp_naming:
+          naming_policy:
+            get input: ecomp_naming
+        providing_service_invariant_uuid:
+        min_instances: 1
+        max_instances: 1
+        providing_service_uuid:
+        providing_service_name: vVIGaaS
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.TunnelXconn
+    capabilities:
+      Alloted resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Alloted resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Alloted resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-VhnfNonHeat-template_AllRes_VF.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-VhnfNonHeat-template_AllRes_VF.yml
new file mode 100644
index 0000000..8ec1c19
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-VhnfNonHeat-template_AllRes_VF.yml
@@ -0,0 +1,24 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: f61adc31-6004-4377-a661-090f59e6b32a
+  UUID: 2118e830-5e0d-409a-9d7a-63b6a72d6f5f
+  name: vHNF non Heat
+  description: vHNF non Heat
+  type: VF
+  category: Generic
+  subcategory: Network Elements
+  resourceVendor: '1'
+  resourceVendorRelease: '1'
+topology_template:
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.VhnfNonHeat
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-VhnfNonHeat-template_WithOutDepSerId.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-VhnfNonHeat-template_WithOutDepSerId.yml
new file mode 100644
index 0000000..8ec1c19
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/resource-VhnfNonHeat-template_WithOutDepSerId.yml
@@ -0,0 +1,24 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: f61adc31-6004-4377-a661-090f59e6b32a
+  UUID: 2118e830-5e0d-409a-9d7a-63b6a72d6f5f
+  name: vHNF non Heat
+  description: vHNF non Heat
+  type: VF
+  category: Generic
+  subcategory: Network Elements
+  resourceVendor: '1'
+  resourceVendorRelease: '1'
+topology_template:
+  substitution_mappings:
+    node_type: org.openecomp.resource.vf.VhnfNonHeat
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service-Allottedipmux-template.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service-Allottedipmux-template.yml
new file mode 100644
index 0000000..449e092
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service-Allottedipmux-template.yml
@@ -0,0 +1,126 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: 9c5b8e77-6ae1-4817-994f-a14a03635868
+  UUID: 2722acbc-a8cb-4d73-ab14-9b2d79dc2131
+  name: AllottedIPMux
+  description: cbvbv
+  type: Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+imports:
+- Tunnel_XConn:
+    file: resource-TunnelXconn-template.yml
+- IP_Mux_Demux:
+    file: resource-IpMuxDemux-template.yml
+topology_template:
+  node_templates:
+    Tunnel_XConn 3:
+      type: org.openecomp.resource.vf.TunnelXconn
+      metadata:
+        invariantUUID: fadbb726-37b6-4939-ba78-9e86974232c5
+        UUID: 68d68207-007a-49f3-a9ae-5f88757d5061
+        customizationUUID: ae051f74-0d64-40f8-877b-791330cd7801
+        version: '1.0'
+        name: Tunnel_XConn
+        description: stella
+        type: VF
+        category: Allotted Resource
+        subcategory: Tunnel XConnect
+    IP_Mux_Demux 2:
+      type: org.openecomp.resource.vf.IpMuxDemux
+      metadata:
+        invariantUUID: ec95fbf0-5d05-4fea-a11e-27869c0032e2
+        UUID: 41e4949f-85b3-4bc5-b7a2-2c166bf87270
+        customizationUUID: 8cb6b8f7-a9bc-4745-92bd-f815f68fa6bc
+        version: '1.0'
+        name: IP_Mux_Demux
+        description: nbvnbb
+        type: VF
+        category: Allotted Resource
+        subcategory: IP Mux Demux
+    IP_Mux_Demux 1:
+      type: org.openecomp.resource.vf.IpMuxDemux
+      metadata:
+        invariantUUID: ec95fbf0-5d05-4fea-a11e-27869c0032e2
+        UUID: 41e4949f-85b3-4bc5-b7a2-2c166bf87270
+        customizationUUID: 7801f43f-f3f6-453f-89ea-4c182c569ad6
+        version: '1.0'
+        name: IP_Mux_Demux
+        description: nbvnbb
+        type: VF
+        category: Allotted Resource
+        subcategory: IP Mux Demux
+  groups: {
+    }
+  substitution_mappings:
+    node_type: org.openecomp.service.Allottedipmux
+    capabilities:
+      IP_Mux_Demux 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      Tunnel_XConn 3.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      IP_Mux_Demux 2.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Tunnel_XConn 3.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      IP_Mux_Demux 2.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      IP_Mux_Demux 2.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+      IP_Mux_Demux 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+      IP_Mux_Demux 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Tunnel_XConn 3.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service-SdWan-template_AllRes_VF.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service-SdWan-template_AllRes_VF.yml
new file mode 100644
index 0000000..bc3ab6d
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service-SdWan-template_AllRes_VF.yml
@@ -0,0 +1,233 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: 3d8b7a76-7c47-4974-b5b9-e24c54b817a2
+  UUID: eb31504f-9f60-4936-a2f2-8ac592b611a6
+  name: SD-WAN
+  description: SD-WAN
+  type: Service
+  category: Network L4+
+  serviceEcompNaming: false
+  serviceHoming: false
+imports:
+- service_admin:
+    file: resource-ServiceAdmin-template.yml
+- Tunnel_XConn:
+    file: resource-TunnelXconn-template.yml
+- vHNF non Heat:
+    file: resource-VhnfNonHeat-template.yml
+- IP_Mux_Demux:
+    file: resource-IpMuxDemux-template.yml
+topology_template:
+  node_templates:
+    Sec_IP_Mux_Demux:
+      type: org.openecomp.resource.vf.IpMuxDemux
+      metadata:
+        invariantUUID: 707b2850-e830-4b00-9902-879f44ac05a4
+        UUID: 495b483b-282a-45df-bbfe-63d1d1d80813
+        customizationUUID: f4b764bb-6721-4219-8c69-7ce61969f755
+        version: '0.1'
+        name: IP_Mux_Demux
+        description: IP_Mux_Demux
+        type: VF
+        category: Allotted Resource
+        subcategory: IP Mux Demux
+    Pri_Tunnel_XConn:
+      type: org.openecomp.resource.vf.TunnelXconn
+      metadata:
+        invariantUUID: 63b95d9a-9c89-40d3-a646-36a1418c5246
+        UUID: ae79ba1b-5d12-4813-b01c-755fa6c800bb
+        customizationUUID: 96d0bbf6-d9f7-441d-8f00-67d79dbf30de
+        version: '0.1'
+        name: Tunnel_XConn
+        description: Tunnel_XConn
+        type: VF
+        category: Allotted Resource
+        subcategory: Tunnel XConnect
+    Pri_service_admin:
+      type: org.openecomp.resource.vf.ServiceAdmin
+      metadata:
+        invariantUUID: 0df08d3e-9701-4f5a-b3ed-82a0b504b366
+        UUID: a9c6246c-0807-4a43-a64c-442a170c2088
+        customizationUUID: 6b4a2a55-3b82-4799-8329-4fc2939fd5b5
+        version: '0.1'
+        name: service_admin
+        description: service_admin
+        type: VF
+        category: Allotted Resource
+        subcategory: Service admin
+    Pri_IP_Mux_Demux:
+      type: org.openecomp.resource.vf.IpMuxDemux
+      metadata:
+        invariantUUID: 707b2850-e830-4b00-9902-879f44ac05a4
+        UUID: 495b483b-282a-45df-bbfe-63d1d1d80813
+        customizationUUID: d8f656d9-179d-4f02-9a46-8af7421eb2a0
+        version: '0.1'
+        name: IP_Mux_Demux
+        description: IP_Mux_Demux
+        type: VF
+        category: Allotted Resource
+        subcategory: IP Mux Demux
+    Sec_Tunnel_XConn:
+      type: org.openecomp.resource.vf.TunnelXconn
+      metadata:
+        invariantUUID: 63b95d9a-9c89-40d3-a646-36a1418c5246
+        UUID: ae79ba1b-5d12-4813-b01c-755fa6c800bb
+        customizationUUID: b432136d-0a2a-460b-a3da-f921e1e0dcfa
+        version: '0.1'
+        name: Tunnel_XConn
+        description: Tunnel_XConn
+        type: VF
+        category: Allotted Resource
+        subcategory: Tunnel XConnect
+    vHNF non Heat 22:
+      type: org.openecomp.resource.vf.VhnfNonHeat
+      metadata:
+        invariantUUID: f61adc31-6004-4377-a661-090f59e6b32a
+        UUID: 2118e830-5e0d-409a-9d7a-63b6a72d6f5f
+        customizationUUID: 9c7a5f7f-6b17-4066-a6f1-094ea925495b
+        version: '0.1'
+        name: vHNF non Heat
+        description: vHNF non Heat
+        type: VF
+        category: Generic
+        subcategory: Network Elements
+    Sec_service_admin:
+      type: org.openecomp.resource.vf.ServiceAdmin
+      metadata:
+        invariantUUID: 0df08d3e-9701-4f5a-b3ed-82a0b504b366
+        UUID: a9c6246c-0807-4a43-a64c-442a170c2088
+        customizationUUID: 5a8ef05b-451f-40f4-9531-3ee00bd3c5c4
+        version: '0.1'
+        name: service_admin
+        description: service_admin
+        type: VF
+        category: Allotted Resource
+        subcategory: Service admin
+  substitution_mappings:
+    node_type: org.openecomp.service.SdWan
+    capabilities:
+      Sec_service_admin.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      Sec_IP_Mux_Demux.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      Pri_service_admin.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      Pri_IP_Mux_Demux.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      Pri_Tunnel_XConn.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      Sec_Tunnel_XConn.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Pri_service_admin.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Sec_Tunnel_XConn.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+      Sec_service_admin.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+      Pri_IP_Mux_Demux.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+      Pri_Tunnel_XConn.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+      Sec_service_admin.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Pri_service_admin.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+      Sec_IP_Mux_Demux.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+      Sec_IP_Mux_Demux.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Pri_Tunnel_XConn.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Sec_Tunnel_XConn.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Pri_IP_Mux_Demux.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service-SdWan-template_WithOutDepSerId.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service-SdWan-template_WithOutDepSerId.yml
new file mode 100644
index 0000000..51d8c2d
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service-SdWan-template_WithOutDepSerId.yml
@@ -0,0 +1,233 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: 3d8b7a76-7c47-4974-b5b9-e24c54b817a2
+  UUID: eb31504f-9f60-4936-a2f2-8ac592b611a6
+  name: SD-WAN
+  description: SD-WAN
+  type: Service
+  category: Network L4+
+  serviceEcompNaming: false
+  serviceHoming: false
+imports:
+- service_admin:
+    file: resource-ServiceAdmin-template.yml
+- Tunnel_XConn:
+    file: resource-TunnelXconn-template.yml
+- vHNF non Heat:
+    file: resource-VhnfNonHeat-template.yml
+- IP_Mux_Demux:
+    file: resource-IpMuxDemux-template.yml
+topology_template:
+  node_templates:
+    Sec_IP_Mux_Demux:
+      type: org.openecomp.resource.vf.IpMuxDemux
+      metadata:
+        invariantUUID: 707b2850-e830-4b00-9902-879f44ac05a4
+        UUID: 495b483b-282a-45df-bbfe-63d1d1d80813
+        customizationUUID: f4b764bb-6721-4219-8c69-7ce61969f755
+        version: '0.1'
+        name: IP_Mux_Demux
+        description: IP_Mux_Demux
+        type: VF
+        category: Allotted Resource
+        subcategory: Allotted Resource
+    Pri_Tunnel_XConn:
+      type: org.openecomp.resource.vf.TunnelXconn
+      metadata:
+        invariantUUID: 63b95d9a-9c89-40d3-a646-36a1418c5246
+        UUID: ae79ba1b-5d12-4813-b01c-755fa6c800bb
+        customizationUUID: 96d0bbf6-d9f7-441d-8f00-67d79dbf30de
+        version: '0.1'
+        name: Tunnel_XConn
+        description: Tunnel_XConn
+        type: VF
+        category: Allotted Resource
+        subcategory: Allotted Resource
+    Pri_service_admin:
+      type: org.openecomp.resource.vf.ServiceAdmin
+      metadata:
+        invariantUUID: 0df08d3e-9701-4f5a-b3ed-82a0b504b366
+        UUID: a9c6246c-0807-4a43-a64c-442a170c2088
+        customizationUUID: 6b4a2a55-3b82-4799-8329-4fc2939fd5b5
+        version: '0.1'
+        name: service_admin
+        description: service_admin
+        type: VF
+        category: Allotted Resource
+        subcategory: Allotted Resource
+    Pri_IP_Mux_Demux:
+      type: org.openecomp.resource.vf.IpMuxDemux
+      metadata:
+        invariantUUID: 707b2850-e830-4b00-9902-879f44ac05a4
+        UUID: 495b483b-282a-45df-bbfe-63d1d1d80813
+        customizationUUID: d8f656d9-179d-4f02-9a46-8af7421eb2a0
+        version: '0.1'
+        name: IP_Mux_Demux
+        description: IP_Mux_Demux
+        type: VF
+        category: Allotted Resource
+        subcategory: Allotted Resource
+    Sec_Tunnel_XConn:
+      type: org.openecomp.resource.vf.TunnelXconn
+      metadata:
+        invariantUUID: 63b95d9a-9c89-40d3-a646-36a1418c5246
+        UUID: ae79ba1b-5d12-4813-b01c-755fa6c800bb
+        customizationUUID: b432136d-0a2a-460b-a3da-f921e1e0dcfa
+        version: '0.1'
+        name: Tunnel_XConn
+        description: Tunnel_XConn
+        type: VF
+        category: Allotted Resource
+        subcategory: Allotted Resource
+    vHNF non Heat 22:
+      type: org.openecomp.resource.vf.VhnfNonHeat
+      metadata:
+        invariantUUID: f61adc31-6004-4377-a661-090f59e6b32a
+        UUID: 2118e830-5e0d-409a-9d7a-63b6a72d6f5f
+        customizationUUID: 9c7a5f7f-6b17-4066-a6f1-094ea925495b
+        version: '0.1'
+        name: vHNF non Heat
+        description: vHNF non Heat
+        type: VF
+        category: Generic
+        subcategory: Network Elements
+    Sec_service_admin:
+      type: org.openecomp.resource.vf.ServiceAdmin
+      metadata:
+        invariantUUID: 0df08d3e-9701-4f5a-b3ed-82a0b504b366
+        UUID: a9c6246c-0807-4a43-a64c-442a170c2088
+        customizationUUID: 5a8ef05b-451f-40f4-9531-3ee00bd3c5c4
+        version: '0.1'
+        name: service_admin
+        description: service_admin
+        type: VF
+        category: Allotted Resource
+        subcategory: Allotted Resource
+  substitution_mappings:
+    node_type: org.openecomp.service.SdWan
+    capabilities:
+      Sec_service_admin.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      Sec_IP_Mux_Demux.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      Pri_service_admin.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      Pri_IP_Mux_Demux.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      Pri_Tunnel_XConn.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      Sec_Tunnel_XConn.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Pri_service_admin.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Sec_Tunnel_XConn.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+      Sec_service_admin.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+      Pri_IP_Mux_Demux.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+      Pri_Tunnel_XConn.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+      Sec_service_admin.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Pri_service_admin.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+      Sec_IP_Mux_Demux.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+      Sec_IP_Mux_Demux.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Pri_Tunnel_XConn.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Sec_Tunnel_XConn.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Pri_IP_Mux_Demux.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service-ServiceWithAllottedResourceIpmux-template.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service-ServiceWithAllottedResourceIpmux-template.yml
new file mode 100644
index 0000000..1fba2e7
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service-ServiceWithAllottedResourceIpmux-template.yml
@@ -0,0 +1,62 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: faa4359b-6ecf-4eeb-9960-6440d4cf1f2f
+  UUID: 614316ee-94ae-41b3-b59a-46e87d3d91a5
+  name: Service with allotted resource IPMUX
+  description: safa
+  type: Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+imports:
+- Allotted Resource:
+    file: resource-AllottedResource-template.yml
+topology_template:
+  node_templates:
+    allottedresource1:
+      type: org.openecomp.resource.vf.AllottedResource
+      metadata:
+        invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+        UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+        customizationUUID: 958fb310-184f-463d-b634-1660a626f320
+        version: '0.2'
+        name: Allotted Resource
+        description: This is a VF - Allotted resource
+        type: VF
+        category: Allotted Resource
+        subcategory: IP Mux Demux
+  groups: {
+    }
+  substitution_mappings:
+    node_type: org.openecomp.service.ServiceWithAllottedResourceIpmux
+    capabilities:
+      Allotted Resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Allotted Resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Allotted Resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service-ServiceWithAllottedResourceIpmux-template_WithGroups.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service-ServiceWithAllottedResourceIpmux-template_WithGroups.yml
new file mode 100644
index 0000000..1fba2e7
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service-ServiceWithAllottedResourceIpmux-template_WithGroups.yml
@@ -0,0 +1,62 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: faa4359b-6ecf-4eeb-9960-6440d4cf1f2f
+  UUID: 614316ee-94ae-41b3-b59a-46e87d3d91a5
+  name: Service with allotted resource IPMUX
+  description: safa
+  type: Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+imports:
+- Allotted Resource:
+    file: resource-AllottedResource-template.yml
+topology_template:
+  node_templates:
+    allottedresource1:
+      type: org.openecomp.resource.vf.AllottedResource
+      metadata:
+        invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+        UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+        customizationUUID: 958fb310-184f-463d-b634-1660a626f320
+        version: '0.2'
+        name: Allotted Resource
+        description: This is a VF - Allotted resource
+        type: VF
+        category: Allotted Resource
+        subcategory: IP Mux Demux
+  groups: {
+    }
+  substitution_mappings:
+    node_type: org.openecomp.service.ServiceWithAllottedResourceIpmux
+    capabilities:
+      Allotted Resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Allotted Resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Allotted Resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service-ServiceWithAllottedResourcesIpMuxSameInvariant-template.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service-ServiceWithAllottedResourcesIpMuxSameInvariant-template.yml
new file mode 100644
index 0000000..efd2dea
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service-ServiceWithAllottedResourcesIpMuxSameInvariant-template.yml
@@ -0,0 +1,74 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: faa4359b-6ecf-4eeb-9960-6440d4cf1f2f
+  UUID: 614316ee-94ae-41b3-b59a-46e87d3d91a5
+  name: Service with allotted resource IPMUX
+  description: safa
+  type: Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+imports:
+- Allotted Resource:
+    file: resource-AllottedResource-template.yml
+topology_template:
+  node_templates:
+    allottedresource1:
+      type: org.openecomp.resource.vf.AllottedResource
+      metadata:
+        invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+        UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+        customizationUUID: 958fb310-184f-463d-b634-1660a626f320
+        version: '0.2'
+        name: Allotted Resource
+        description: This is a VF - Allotted resource
+        type: VF
+        category: Allotted Resource
+        subcategory: IP Mux Demux
+    allottedresource2:
+      type: org.openecomp.resource.vf.AllottedResource
+      metadata:
+        invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+        UUID: f64afdc3-6308-4f0c-a476-0d39c8a1fb4d
+        customizationUUID: 958fb310-184f-463d-b634-1660a626f320
+        version: '0.3'
+        name: Allotted Resource
+        description: This is a VF - Allotted resource
+        type: VF
+        category: Allotted Resource
+        subcategory: IP Mux Demux
+      groups: {
+    }
+  substitution_mappings:
+    node_type: org.openecomp.service.ServiceWithAllottedResourceIpmux
+    capabilities:
+      Allotted Resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Allotted Resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Allotted Resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service-ServiceWithAllottedResourcesIpMuxSameInvariantSameVers-template.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service-ServiceWithAllottedResourcesIpMuxSameInvariantSameVers-template.yml
new file mode 100644
index 0000000..08c5329
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service-ServiceWithAllottedResourcesIpMuxSameInvariantSameVers-template.yml
@@ -0,0 +1,74 @@
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
+tosca_definitions_version: tosca_simple_yaml_1_0
+metadata:
+  invariantUUID: faa4359b-6ecf-4eeb-9960-6440d4cf1f2f
+  UUID: 614316ee-94ae-41b3-b59a-46e87d3d91a5
+  name: Service with allotted resource IPMUX
+  description: safa
+  type: Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+imports:
+- Allotted Resource:
+    file: resource-AllottedResource-template.yml
+topology_template:
+  node_templates:
+    allottedresource1:
+      type: org.openecomp.resource.vf.AllottedResource
+      metadata:
+        invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+        UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+        customizationUUID: 958fb310-184f-463d-b634-1660a626f320
+        version: '0.2'
+        name: Allotted Resource
+        description: This is a VF - Allotted resource
+        type: VF
+        category: Allotted Resource
+        subcategory: IP Mux Demux
+    allottedresource2:
+      type: org.openecomp.resource.vf.AllottedResource
+      metadata:
+        invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+        UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+        customizationUUID: 958fb310-184f-463d-b634-1660a626f320
+        version: '0.2'
+        name: Allotted Resource
+        description: This is a VF - Allotted resource
+        type: VF
+        category: Allotted Resource
+        subcategory: IP Mux Demux
+      groups: {
+    }
+  substitution_mappings:
+    node_type: org.openecomp.service.ServiceWithAllottedResourceIpmux
+    capabilities:
+      Allotted Resource 1.feature:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+    requirements:
+      Allotted Resource 1.dependency:
+        occurrences:
+        - 0
+        - UNBOUNDED
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+      Allotted Resource 1.service_dependency:
+        occurrences:
+        - 1
+        - 1
+        capability: org.openecomp.capabilities.AllottedResource
+        node: tosca.services.Root
+        relationship: tosca.relationships.DependsOn
+#_______________________________________________________________________________________________________________________________________
+ #|                                    					    AT&T Proprietary (Restricted)           									 |
+ #|                                     Only for use by authorized individuals or any above-designated team(s)                            |
+ #|                                          within the AT&T companies and not for general distribution      							 |
+ #|_______________________________________________________________________________________________________________________________________|
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_DiffVerOfSameVF.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_DiffVerOfSameVF.yml
new file mode 100644
index 0000000..6a5af0d
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_DiffVerOfSameVF.yml
@@ -0,0 +1,112 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  type: Service
+  name: vMME_Service
+  description: vMME_Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+    
+topology_template:
+
+  inputs:    
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity 
+      
+  node_templates:
+
+    mme: # vMME VNF
+      type: org.openecomp.resource.vf.vmme
+
+      metadata:
+          invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version: 1.0
+          name: vMME_VF
+          description: vMME_VF
+          type: VF
+          category: Application L4+
+          subcategory: Firewall
+          resourceVendor: Ericsson
+
+    mme1: # vMME VNF
+      type: org.openecomp.resource.vf.vmme
+
+      metadata:
+          invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7fef
+          version: 2.0
+          name: vMME_VF1
+          description: vMME_VF
+          type: VF
+          category: Application L4+
+          subcategory: Firewall
+          resourceVendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_DiffVerOfSameVFModWithSameInvId.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_DiffVerOfSameVFModWithSameInvId.yml
new file mode 100644
index 0000000..11ab6e1
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_DiffVerOfSameVFModWithSameInvId.yml
@@ -0,0 +1,98 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  type: Service
+  name: vMME_Service
+  description: vMME_Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+    
+topology_template:
+
+  inputs:    
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity 
+      
+  node_templates:
+
+    mme: # vMME VNF
+      type: org.openecomp.resource.vf.vmme
+
+      metadata:
+          invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version: 1.0
+          name: vMME_VF
+          description: vMME_VF
+          type: VF
+          category: Application L4+
+          subcategory: Firewall
+          resourceVendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_DupVFModUUID.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_DupVFModUUID.yml
new file mode 100644
index 0000000..e75f7ab
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_DupVFModUUID.yml
@@ -0,0 +1,194 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  name: vMME_Service
+  description: vMME_Service
+  type: Service
+  category: Mobility
+  ecompNaming: false
+  homing: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+    
+topology_template:
+
+  inputs:    
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity 
+      
+  node_templates:
+
+    mme: # vMME VNF
+      type: org.openecomp.resource.vf.vmme
+
+      metadata:
+          invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version: 1.0
+          name: vMME_VF
+          description: vMME_VF
+          type: VF
+          category: Application L4+
+          subcategory: Firewall
+          vendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+ 
+     
+  # Virtual Links (Networks)
+  
+    gtp_net:
+      type: abc.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+        UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+        version: 1.0
+        name: GTPNet
+        description: GTP External Network
+        type: VL
+        category: VL
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: {get_input: gtp_net_network_name}
+          route_targets: {get_input: gtp_net_route_targets}
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN 
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: {get_input: gtp_net_cidr}
+          gateway_ip: {get_input: gtp_net_gateway_ip}
+          start_ip: {get_input: gtp_net_start_ip}
+          end_ip: {get_input: gtp_net_end_ip}
+    
+    sctp_a_net:
+      type: abc.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+        UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+        version: 1.0
+        name: SCTPANet
+        description: SCTP A External Network
+        type: VL
+        category: VL
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+          route_targets: 13979:105717
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.0/27 # HEAT ENV
+          gateway_ip: 107.243.37.1 # HEAT ENV
+          start_ip: 107.243.37.3 # HEAT ENV
+          end_ip: 107.243.37.30 # HEAT ENV
+      
+    sctp_b_net:
+      type: abc.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+        UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+        version: 1.0
+        name: SCTPBNet
+        description: SCTP B External Network
+        type: VL
+        category: VL
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+          route_targets: 13979:105719
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.32/24 # HEAT ENV
+          gateway_ip: 107.243.37.33 # HEAT ENV
+          start_ip: 107.243.37.35 # HEAT ENV
+          end_ip: 107.243.37.62 # HEAT ENV
+      
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_DupVFUUID.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_DupVFUUID.yml
new file mode 100644
index 0000000..f92b048
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_DupVFUUID.yml
@@ -0,0 +1,229 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  name: vMME_Service
+  description: vMME_Service
+  type: Service
+  category: Mobility
+  ecompNaming: false
+  homing: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+    
+topology_template:
+
+  inputs:    
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity 
+      
+  node_templates:
+
+    mme: # vMME VNF
+      type: org.openecomp.resource.vf.vmme
+
+      metadata:
+          invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version: 1.0
+          name: vMME_VF
+          description: vMME_VF
+          type: VF
+          category: Application L4+
+          subcategory: Firewall
+          vendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+
+    mme1: # vMME VNF1
+      type: org.openecomp.resource.vf.vmme
+
+      metadata:
+          invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version: 1.0
+          name: vMME_VF2
+          description: vMME_VF2
+          type: VF
+          category: Application L4+
+          subcategory: Firewall
+          vendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+ 
+     
+  # Virtual Links (Networks)
+  
+    gtp_net:
+      type: abc.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+        UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+        version: 1.0
+        name: GTPNet
+        description: GTP External Network
+        type: VL
+        category: VL
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: {get_input: gtp_net_network_name}
+          route_targets: {get_input: gtp_net_route_targets}
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN 
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: {get_input: gtp_net_cidr}
+          gateway_ip: {get_input: gtp_net_gateway_ip}
+          start_ip: {get_input: gtp_net_start_ip}
+          end_ip: {get_input: gtp_net_end_ip}
+    
+    sctp_a_net:
+      type: abc.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+        UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+        version: 1.0
+        name: SCTPANet
+        description: SCTP A External Network
+        type: VL
+        category: VL
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+          route_targets: 13979:105717
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.0/27 # HEAT ENV
+          gateway_ip: 107.243.37.1 # HEAT ENV
+          start_ip: 107.243.37.3 # HEAT ENV
+          end_ip: 107.243.37.30 # HEAT ENV
+      
+    sctp_b_net:
+      type: abc.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+        UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+        version: 1.0
+        name: SCTPBNet
+        description: SCTP B External Network
+        type: VL
+        category: VL
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+          route_targets: 13979:105719
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.32/24 # HEAT ENV
+          gateway_ip: 107.243.37.33 # HEAT ENV
+          start_ip: 107.243.37.35 # HEAT ENV
+          end_ip: 107.243.37.62 # HEAT ENV
+      
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_MissingVFInServiceTOSCA.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_MissingVFInServiceTOSCA.yml
new file mode 100644
index 0000000..d112817
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_MissingVFInServiceTOSCA.yml
@@ -0,0 +1,158 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  name: vMME_Service
+  type: Service
+  description: vMME_Service
+  category: Mobility
+  ecompNaming: false
+  homing: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+    
+topology_template:
+
+  inputs:    
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity 
+      
+  node_templates:
+
+  # Virtual Links (Networks)
+  
+    gtp_net:
+      type: abc.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+        UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+        version: 1.0
+        name: GTPNet
+        description: GTP External Network
+        type: VL
+        categry: VL
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: {get_input: gtp_net_network_name}
+          route_targets: {get_input: gtp_net_route_targets}
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN 
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: {get_input: gtp_net_cidr}
+          gateway_ip: {get_input: gtp_net_gateway_ip}
+          start_ip: {get_input: gtp_net_start_ip}
+          end_ip: {get_input: gtp_net_end_ip}
+    
+    sctp_a_net:
+      type: abc.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+        UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+        version: 1.0
+        name: SCTPANet
+        description: SCTP A External Network
+        type: VL
+        categry: VL
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+          route_targets: 13979:105717
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.0/27 # HEAT ENV
+          gateway_ip: 107.243.37.1 # HEAT ENV
+          start_ip: 107.243.37.3 # HEAT ENV
+          end_ip: 107.243.37.30 # HEAT ENV
+      
+    sctp_b_net:
+      type: abc.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+        UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+        version: 1.0
+        name: SCTPBNet
+        description: SCTP B External Network
+        type: VL
+        categry: VL
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+          route_targets: 13979:105719
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.32/24 # HEAT ENV
+          gateway_ip: 107.243.37.33 # HEAT ENV
+          start_ip: 107.243.37.35 # HEAT ENV
+          end_ip: 107.243.37.62 # HEAT ENV
+      
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: abc.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_MissingVFTemplate.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_MissingVFTemplate.yml
new file mode 100644
index 0000000..81982bd
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_MissingVFTemplate.yml
@@ -0,0 +1,193 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  name: vMME_Service
+  description: vMME_Service
+  type: Service
+  category: Mobility
+  ecompNaming: false
+  homing: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+    
+topology_template:
+
+  inputs:    
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity 
+      
+  node_templates:
+
+    mme: # vMME VNF
+      type: abc.openecomp.resource.vf.vmme
+
+      metadata:
+          invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version: 1.0
+          name: vMME_VF
+          description: vMME_VF
+          type: VF
+          category: Application L4+
+          subcategory: Firewall
+          vendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+
+  # Virtual Links (Networks)
+  
+    gtp_net:
+      type: abc.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+        UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+        version: 1.0
+        name: GTPNet
+        description: GTP External Network
+        type: VL
+        category: VL
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: {get_input: gtp_net_network_name}
+          route_targets: {get_input: gtp_net_route_targets}
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN 
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: {get_input: gtp_net_cidr}
+          gateway_ip: {get_input: gtp_net_gateway_ip}
+          start_ip: {get_input: gtp_net_start_ip}
+          end_ip: {get_input: gtp_net_end_ip}
+    
+    sctp_a_net:
+      type: abc.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+        UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+        version: 1.0
+        name: SCTPANet
+        description: SCTP A External Network
+        type: VL
+        category: VL
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+          route_targets: 13979:105717
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.0/27 # HEAT ENV
+          gateway_ip: 107.243.37.1 # HEAT ENV
+          start_ip: 107.243.37.3 # HEAT ENV
+          end_ip: 107.243.37.30 # HEAT ENV
+      
+    sctp_b_net:
+      type: abc.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+        UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+        version: 1.0
+        name: SCTPBNet
+        description: SCTP B External Network
+        type: VL
+        category: VL
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+          route_targets: 13979:105719
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.32/24 # HEAT ENV
+          gateway_ip: 107.243.37.33 # HEAT ENV
+          start_ip: 107.243.37.35 # HEAT ENV
+          end_ip: 107.243.37.62 # HEAT ENV
+      
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_MulComp.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_MulComp.yml
new file mode 100644
index 0000000..dd0a8eb
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_MulComp.yml
@@ -0,0 +1,193 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  name: vMME_Service
+  description: vMME_Service
+  type: Service
+  category: Mobility
+  ecompNaming: false
+  homing: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+    
+topology_template:
+
+  inputs:    
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity 
+      
+  node_templates:
+
+    mme: # vMME VNF
+      type: org.openecomp.resource.vf.vmme
+
+      metadata:
+          invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version: 1.0
+          name: vMME_VF
+          description: vMME_VF
+          type: VF
+          category: Application L4+
+          subcategory: Firewall
+          vendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+
+  # Virtual Links (Networks)
+  
+    gtp_net:
+      type: abc.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+        UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+        version: 1.0
+        name: GTPNet
+        description: GTP External Network
+        type: VL
+        category: VL
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: {get_input: gtp_net_network_name}
+          route_targets: {get_input: gtp_net_route_targets}
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN 
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: {get_input: gtp_net_cidr}
+          gateway_ip: {get_input: gtp_net_gateway_ip}
+          start_ip: {get_input: gtp_net_start_ip}
+          end_ip: {get_input: gtp_net_end_ip}
+    
+    sctp_a_net:
+      type: abc.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+        UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+        version: 1.0
+        name: SCTPANet
+        description: SCTP A External Network
+        type: VL
+        category: VL
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+          route_targets: 13979:105717
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.0/27 # HEAT ENV
+          gateway_ip: 107.243.37.1 # HEAT ENV
+          start_ip: 107.243.37.3 # HEAT ENV
+          end_ip: 107.243.37.30 # HEAT ENV
+      
+    sctp_b_net:
+      type: abc.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+        UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+        version: 1.0
+        name: SCTPBNet
+        description: SCTP B External Network
+        type: VL
+        category: VL
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+          route_targets: 13979:105719
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.32/24 # HEAT ENV
+          gateway_ip: 107.243.37.33 # HEAT ENV
+          start_ip: 107.243.37.35 # HEAT ENV
+          end_ip: 107.243.37.62 # HEAT ENV
+      
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_MulVFVFMod.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_MulVFVFMod.yml
new file mode 100644
index 0000000..353a233
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_MulVFVFMod.yml
@@ -0,0 +1,194 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  version: 1.0
+  name: vMME_Service
+  type: Service
+  description: vMME_Service
+  category: Mobility
+  ecompNaming: false
+  homing: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+    
+topology_template:
+
+  inputs:    
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity 
+      
+  node_templates:
+
+    mme: # vMME VNF
+      type: abc.openecomp.resource.vf.vmme
+
+      metadata:
+          invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version: 1.0
+          name: vMME_VF
+          description: vMME_VF
+          type: VF
+          category: Application L4+
+          resourceSubcategory: Firewall  
+          vendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+
+  # Virtual Links (Networks)
+  
+    gtp_net:
+      type: abc.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+        UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+        version: 1.0
+        name: GTPNet
+        description: GTP External Network
+        type: VL
+        category: VL
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: {get_input: gtp_net_network_name}
+          route_targets: {get_input: gtp_net_route_targets}
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN 
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: {get_input: gtp_net_cidr}
+          gateway_ip: {get_input: gtp_net_gateway_ip}
+          start_ip: {get_input: gtp_net_start_ip}
+          end_ip: {get_input: gtp_net_end_ip}
+    
+    sctp_a_net:
+      type: abc.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+        UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+        version: 1.0
+        name: SCTPANet
+        description: SCTP A External Network
+        type: VL
+        category: VL
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+          route_targets: 13979:105717
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.0/27 # HEAT ENV
+          gateway_ip: 107.243.37.1 # HEAT ENV
+          start_ip: 107.243.37.3 # HEAT ENV
+          end_ip: 107.243.37.30 # HEAT ENV
+      
+    sctp_b_net:
+      type: abc.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+        UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+        version: 1.0
+        name: SCTPBNet
+        description: SCTP B External Network
+        type: VL
+        category: VL
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+          route_targets: 13979:105719
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.32/24 # HEAT ENV
+          gateway_ip: 107.243.37.33 # HEAT ENV
+          start_ip: 107.243.37.35 # HEAT ENV
+          end_ip: 107.243.37.62 # HEAT ENV
+      
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: abc.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_NoSystemPropConfigured.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_NoSystemPropConfigured.yml
new file mode 100644
index 0000000..11ab6e1
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_NoSystemPropConfigured.yml
@@ -0,0 +1,98 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  type: Service
+  name: vMME_Service
+  description: vMME_Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+    
+topology_template:
+
+  inputs:    
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity 
+      
+  node_templates:
+
+    mme: # vMME VNF
+      type: org.openecomp.resource.vf.vmme
+
+      metadata:
+          invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version: 1.0
+          name: vMME_VF
+          description: vMME_VF
+          type: VF
+          category: Application L4+
+          subcategory: Firewall
+          resourceVendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_NullFields.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_NullFields.yml
new file mode 100644
index 0000000..2ca342c
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_NullFields.yml
@@ -0,0 +1,193 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  UUID:
+  name: vMME_Service
+  type: Service
+  description: vMME_Service
+  category: Mobility
+  ecompNaming: false
+  homing: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+    
+topology_template:
+
+  inputs:    
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity 
+      
+  node_templates:
+
+    mme: # vMME VNF
+      type: org.openecomp.resource.vf.vmme
+
+      metadata:
+          invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version: 1.0
+          name: vMME_VF
+          description: vMME_VF
+          type: VF
+          category: Application L4+
+          subcategory: Firewall
+          vendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+
+  # Virtual Links (Networks)
+  
+    gtp_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+        UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+        version: 1.0
+        name: GTPNet
+        description: GTP External Network
+        type: VL
+        category: VL
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: {get_input: gtp_net_network_name}
+          route_targets: {get_input: gtp_net_route_targets}
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN 
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: {get_input: gtp_net_cidr}
+          gateway_ip: {get_input: gtp_net_gateway_ip}
+          start_ip: {get_input: gtp_net_start_ip}
+          end_ip: {get_input: gtp_net_end_ip}
+    
+    sctp_a_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+        UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+        version: 1.0
+        name: SCTPANet
+        description: SCTP A External Network
+        type: VL
+        category: VL
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+          route_targets: 13979:105717
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.0/27 # HEAT ENV
+          gateway_ip: 107.243.37.1 # HEAT ENV
+          start_ip: 107.243.37.3 # HEAT ENV
+          end_ip: 107.243.37.30 # HEAT ENV
+      
+    sctp_b_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+        UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+        version: 1.0
+        name: SCTPBNet
+        description: SCTP B External Network
+        type: VL
+        category: VL
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+          route_targets: 13979:105719
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.32/24 # HEAT ENV
+          gateway_ip: 107.243.37.33 # HEAT ENV
+          start_ip: 107.243.37.35 # HEAT ENV
+          end_ip: 107.243.37.62 # HEAT ENV
+      
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_Orphan.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_Orphan.yml
new file mode 100644
index 0000000..6ca0957
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_Orphan.yml
@@ -0,0 +1,229 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  name: vMME_Service
+  type: Service
+  description: vMME_Service
+  category: Mobility
+  ecompNaming: false
+  homing: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+    
+topology_template:
+
+  inputs:    
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity 
+      
+  node_templates:
+
+    mme: # vMME VNF
+      type: org.openecomp.resource.vf.vmme
+
+      metadata:
+          invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b220ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version: 1.0
+          name: vMME_VF
+          description: vMME_VF
+          type: VF
+          category: Application L4+
+          subcategory: Firewall
+          vendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+
+    mme1: # vMME VNF1
+      type: org.openecomp.resource.vf.vmme
+
+      metadata:
+          invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b220ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version: 1.0
+          name: vMME_VF
+          description: vMME_VF2
+          type: VF
+          category: Application L4+
+          subcategory: Firewall
+          vendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+ 
+     
+  # Virtual Links (Networks)
+  
+    gtp_net:
+      type: abc.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+        UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+        version: 1.0
+        name: GTPNet
+        description: GTP External Network
+        type: VL
+        category: VL
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: {get_input: gtp_net_network_name}
+          route_targets: {get_input: gtp_net_route_targets}
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN 
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: {get_input: gtp_net_cidr}
+          gateway_ip: {get_input: gtp_net_gateway_ip}
+          start_ip: {get_input: gtp_net_start_ip}
+          end_ip: {get_input: gtp_net_end_ip}
+    
+    sctp_a_net:
+      type: abc.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+        UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+        version: 1.0
+        name: SCTPANet
+        description: SCTP A External Network
+        type: VL
+        category: VL
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+          route_targets: 13979:105717
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.0/27 # HEAT ENV
+          gateway_ip: 107.243.37.1 # HEAT ENV
+          start_ip: 107.243.37.3 # HEAT ENV
+          end_ip: 107.243.37.30 # HEAT ENV
+      
+    sctp_b_net:
+      type: abc.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+        UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+        version: 1.0
+        name: SCTPBNet
+        description: SCTP B External Network
+        type: VL
+        category: VL
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+          route_targets: 13979:105719
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.32/24 # HEAT ENV
+          gateway_ip: 107.243.37.33 # HEAT ENV
+          start_ip: 107.243.37.35 # HEAT ENV
+          end_ip: 107.243.37.62 # HEAT ENV
+      
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_SameWidget1.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_SameWidget1.yml
new file mode 100644
index 0000000..d83e44b
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_SameWidget1.yml
@@ -0,0 +1,193 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  invariantUUID: e266f20c-5331-4245-9ad5-8861a73080b7
+  UUID: 8887da18-7516-40cf-bec0-ebd4202c60f0
+  name: vMME_Service
+  type: Service
+  description: vMME_Service
+  category: Mobility
+  ecompNaming: false
+  homing: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+    
+topology_template:
+
+  inputs:    
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity 
+      
+  node_templates:
+
+    mme: # vMME VNF
+      type: org.openecomp.resource.vf.vmme
+
+      metadata:
+          invariantUUID: b8753c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b031ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version: 1.0
+          name: vMME_VF
+          description: vMME_VF
+          type: VF
+          categry: Application L4+
+          subcategory: Firewall
+          vendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+
+  # Virtual Links (Networks)
+  
+    gtp_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+        UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+        version: 1.0
+        name: GTPNet
+        description: GTP External Network
+        type: VL
+        categry: VL
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: {get_input: gtp_net_network_name}
+          route_targets: {get_input: gtp_net_route_targets}
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN 
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: {get_input: gtp_net_cidr}
+          gateway_ip: {get_input: gtp_net_gateway_ip}
+          start_ip: {get_input: gtp_net_start_ip}
+          end_ip: {get_input: gtp_net_end_ip}
+    
+    sctp_a_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+        UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+        version: 1.0
+        name: SCTPANet
+        description: SCTP A External Network
+        type: VL
+        categry: VL
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+          route_targets: 13979:105717
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.0/27 # HEAT ENV
+          gateway_ip: 107.243.37.1 # HEAT ENV
+          start_ip: 107.243.37.3 # HEAT ENV
+          end_ip: 107.243.37.30 # HEAT ENV
+      
+    sctp_b_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+        UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+        version: 1.0
+        name: SCTPBNet
+        description: SCTP B External Network
+        type: VL
+        categry: VL
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+          route_targets: 13979:105719
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.32/24 # HEAT ENV
+          gateway_ip: 107.243.37.33 # HEAT ENV
+          start_ip: 107.243.37.35 # HEAT ENV
+          end_ip: 107.243.37.62 # HEAT ENV
+      
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_SameWidget2.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_SameWidget2.yml
new file mode 100644
index 0000000..989c623
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_SameWidget2.yml
@@ -0,0 +1,193 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  name: vMME_Service
+  type: Service
+  description: vMME_Service
+  category: Mobility
+  ecompNaming: false
+  homing: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+    
+topology_template:
+
+  inputs:    
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity 
+      
+  node_templates:
+
+    mme: # vMME VNF
+      type: org.openecomp.resource.vf.vmme
+
+      metadata:
+          invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version: 1.0
+          name: vMME_VF
+          description: vMME_VF
+          type: VF
+          categry: Application L4+
+          subcategory: Firewall
+          vendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+
+  # Virtual Links (Networks)
+  
+    gtp_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+        UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+        version: 1.0
+        name: GTPNet
+        description: GTP External Network
+        type: VL
+        categry: VL
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: {get_input: gtp_net_network_name}
+          route_targets: {get_input: gtp_net_route_targets}
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN 
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: {get_input: gtp_net_cidr}
+          gateway_ip: {get_input: gtp_net_gateway_ip}
+          start_ip: {get_input: gtp_net_start_ip}
+          end_ip: {get_input: gtp_net_end_ip}
+    
+    sctp_a_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+        UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+        version: 1.0
+        name: SCTPANet
+        description: SCTP A External Network
+        type: VL
+        categry: VL
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+          route_targets: 13979:105717
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.0/27 # HEAT ENV
+          gateway_ip: 107.243.37.1 # HEAT ENV
+          start_ip: 107.243.37.3 # HEAT ENV
+          end_ip: 107.243.37.30 # HEAT ENV
+      
+    sctp_b_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+        UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+        version: 1.0
+        name: SCTPBNet
+        description: SCTP B External Network
+        type: VL
+        categry: VL
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+          route_targets: 13979:105719
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.32/24 # HEAT ENV
+          gateway_ip: 107.243.37.33 # HEAT ENV
+          start_ip: 107.243.37.35 # HEAT ENV
+          end_ip: 107.243.37.62 # HEAT ENV
+      
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_SingleVFVFMod.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_SingleVFVFMod.yml
new file mode 100644
index 0000000..0d586db
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_SingleVFVFMod.yml
@@ -0,0 +1,98 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  type: Service
+  name: vMME_Service
+  description: vMME_Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+
+topology_template:
+
+  inputs:
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity
+
+  node_templates:
+
+    mme: # vMME VNF
+      type: org.openecomp.resource.vf.vmme
+
+      metadata:
+          invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version: 1.0
+          name: vMME_VF
+          description: vMME_VF
+          type: VF
+          category: Application L4+
+          subcategory: Firewall
+          resourceVendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyMandatoryParameterResourceVersion.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyMandatoryParameterResourceVersion.yml
new file mode 100644
index 0000000..2d92782
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyMandatoryParameterResourceVersion.yml
@@ -0,0 +1,178 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: vMMSC Service Topology Template
+
+metadata:
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  name: vMMSC_Service
+  description: vMMSC Service
+  type: Service
+  category: Mobility
+  ecompNaming: false
+  homing: false
+
+ # reference to template definitions
+imports:
+  - tosca_simple_profile_for_ecomp_1_0.yml
+  - vmmsc_vf.yml
+  - veca_oam_vf.yml
+  - cmaui_vf.yml
+  - service_network.yml #
+
+topology_template:
+
+   # This section provides the parameters which OPENECOMP is not providing values to during instantiation.
+   # It is expected that node template parameters which are not mapped to the Inputs section recieve value from OPENECOMP
+   # during the orchestration
+
+  inputes:
+    service_instance_name:
+      type: string
+      description: service instance name
+    service_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this service instance
+    vMMSC_init_instances:
+      type: integer
+      description: The number of instances to instantiate
+      constraints:
+        - in_range: [1, 5]
+    vECA_OAM_init_instances:
+      type: integer
+      description: The number of instances to instantiate
+      constraints:
+        - in_range: [1, 3]
+
+  node_templates:
+
+    vMMSC: # vMMSC VNF
+      type: org.openecomp.resource.vf.Generic
+
+      metadata:
+        invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+        UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        name: vMMC VF
+        description: |
+                              Delivers messages composed of text, images, and other media types (for example audio and video)
+                              in an operator's network. It is responsible for storing and handling incoming and outgoing Multimedia
+                              Messages (MMs); therefore, acting as an MMS Relay and MMS Server at the same time.
+        type: VF
+        category: Mobility
+        subCategory: MMC
+        vendor: Nokia
+        vendorVersion: 6.0.2.14
+
+      properties:
+        vf_ecomp_name: true
+        vf_instance_name: # to be set by OPENECOMP during instantiation
+        vf_homing: true
+        vf_deployment_node: # to be set by OPENECOMP during instantiation
+        min_instances: 1
+        max_instances: 5
+        init_instances:    # number of instances to initialize. This number can be in the range of min_instances and max_instances.
+                           # if no value provided use min_instances value.
+
+
+    vECA_OAM: # vECA VF
+      type: org.openecomp.resource.vf.Generic
+
+      metadata:
+        invariantUUID: 3d4f3d68-d3a3-4f52-127c-ab188c9d4da2 # generated by ASDC
+        UUID: a2c4dc32-9c16-a3df-d2c0-e5ab221c69f0 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: vECA VF
+        description: |
+                              Performs intelligent adaptation of Multimedia Messages (MMs), and adaptation of individual media,
+                              such as videos, audio files, images, animations, and text. Sits on the MM1 downlink path and performs
+                              optimization offline. It intercepts the entire media and completes the optimizations before sending
+                              the message to handsets.
+        type: VF
+        category: Generic
+        resourceCategory: Mobility
+        subCategory: MMSC
+        vendor: Nokia
+        vendorVersion: 13
+
+      properties:
+        vf_ecomp_name: true
+        vf_instance_name: # to be set by OPENECOMP during instantiation
+        vf_homing: true
+        vf_deployment_node: # to be set by OPENECOMP during instantiation
+        min_instances: 1
+        max_instances: 3
+
+
+
+    CMAUI: # CMAUI VF
+      type: org.openecomp.resource.vf.Generic
+
+      metadata:
+        invariantUUID: dd4f3d68-1223-4a97-127c-11ab729d4da2 # generated by ASDC
+        UUID: 2a14db52-5116-d3af-1240-1236221cab8d # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: CMAUI VF
+        description: CMAUI MMSC VF
+        type: VF
+        category: Generic
+        resourceCategory: Mobility
+        subCategory: MMSC
+        vendor: Nokia
+        vendorVersion: 5.0.2.5.37
+
+      properties:
+        vf_ecomp_name: true
+        vf_instance_name: # to be set by OPENECOMP during instantiation
+        vf_homing: true
+        vf_deployment_node: # to be set by OPENECOMP during instantiation
+        min_instances: 1
+        max_instances: 1
+
+
+
+    # service level network
+
+    eca_internal_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+        UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+        version: 1.0
+        name: ECA traffic network
+        description: ECA traffic network
+        type: VL
+        category: VL
+        vendor: Nokia
+
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input: network_deployment_node }
+        contrail_virtual_network:
+          network_name: # provided by OPENECOMP (SDNC)
+          route_targets: 13979:105719
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.32/24 # HEAT ENV
+          gateway_ip: 107.243.37.33 # HEAT ENV
+          start_ip: 107.243.37.35 # HEAT ENV
+          end_ip: 107.243.37.62 # HEAT ENV
+      capabilities:
+        virtual_linkable:
+          valid_source_types: org.openecomp.resource.cp.CP
+
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
\ No newline at end of file
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyMandatoryParameterServiceVersion.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyMandatoryParameterServiceVersion.yml
new file mode 100644
index 0000000..0d586db
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyMandatoryParameterServiceVersion.yml
@@ -0,0 +1,98 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  type: Service
+  name: vMME_Service
+  description: vMME_Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+
+topology_template:
+
+  inputs:
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity
+
+  node_templates:
+
+    mme: # vMME VNF
+      type: org.openecomp.resource.vf.vmme
+
+      metadata:
+          invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version: 1.0
+          name: vMME_VF
+          description: vMME_VF
+          type: VF
+          category: Application L4+
+          subcategory: Firewall
+          resourceVendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyResourceVersionFormat1.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyResourceVersionFormat1.yml
new file mode 100644
index 0000000..2e0d2d4
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyResourceVersionFormat1.yml
@@ -0,0 +1,98 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  type: Service
+  name: vMME_Service
+  description: vMME_Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+
+topology_template:
+
+  inputs:
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity
+
+  node_templates:
+
+    mme: # vMME VNF
+      type: org.openecomp.resource.vf.vmme
+
+      metadata:
+          invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version: 9
+          name: vMME_VF
+          description: vMME_VF
+          type: VF
+          category: Application L4+
+          subcategory: Firewall
+          resourceVendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyResourceVersionFormat2.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyResourceVersionFormat2.yml
new file mode 100644
index 0000000..9ab98f3
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyResourceVersionFormat2.yml
@@ -0,0 +1,98 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  type: Service
+  name: vMME_Service
+  description: vMME_Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+
+topology_template:
+
+  inputs:
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity
+
+  node_templates:
+
+    mme: # vMME VNF
+      type: org.openecomp.resource.vf.vmme
+
+      metadata:
+          invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version: 0.0
+          name: vMME_VF
+          description: vMME_VF
+          type: VF
+          category: Application L4+
+          subcategory: Firewall
+          resourceVendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyServiceVersion.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyServiceVersion.yml
new file mode 100644
index 0000000..0d586db
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyServiceVersion.yml
@@ -0,0 +1,98 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  type: Service
+  name: vMME_Service
+  description: vMME_Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+
+topology_template:
+
+  inputs:
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity
+
+  node_templates:
+
+    mme: # vMME VNF
+      type: org.openecomp.resource.vf.vmme
+
+      metadata:
+          invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version: 1.0
+          name: vMME_VF
+          description: vMME_VF
+          type: VF
+          category: Application L4+
+          subcategory: Firewall
+          resourceVendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyServiceVersionFormat.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyServiceVersionFormat.yml
new file mode 100644
index 0000000..0d586db
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyServiceVersionFormat.yml
@@ -0,0 +1,98 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  type: Service
+  name: vMME_Service
+  description: vMME_Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+
+topology_template:
+
+  inputs:
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity
+
+  node_templates:
+
+    mme: # vMME VNF
+      type: org.openecomp.resource.vf.vmme
+
+      metadata:
+          invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version: 1.0
+          name: vMME_VF
+          description: vMME_VF
+          type: VF
+          category: Application L4+
+          subcategory: Firewall
+          resourceVendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyVFModWithInvalidNo.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyVFModWithInvalidNo.yml
new file mode 100644
index 0000000..ae7d9ce
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyVFModWithInvalidNo.yml
@@ -0,0 +1,102 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  version: 1.0
+  name: vMME_Service
+  type: Service
+  description: vMME_Service
+  category: Mobility
+  ecompNaming: false
+  homing: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+    
+topology_template:
+
+  inputs:    
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity 
+      
+  node_templates:
+
+    mme: # vMME VNF
+      type: org.openecomp.resource.vf.vmme
+
+      metadata:
+          invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version: 1.0
+          name: vMME_VF
+          description: vMME_VF
+          type: VF
+          category: Application L4+
+          subcategory: Firewall
+          vendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+
+  # Virtual Links (Networks)
+  
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyVFModWithoutVNFC.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyVFModWithoutVNFC.yml
new file mode 100644
index 0000000..7789017
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_VerifyVFModWithoutVNFC.yml
@@ -0,0 +1,193 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  name: vMME_Service
+  type: Service
+  description: vMME_Service
+  category: Mobility
+  ecompNaming: false
+  homing: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+    
+topology_template:
+
+  inputs:    
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity 
+      
+  node_templates:
+
+    mme: # vMME VNF
+      type: org.openecomp.resource.vf.vmme
+
+      metadata:
+          invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version: 1.0
+          name: vMME_VF
+          description: vMME_VF
+          type: VF
+          category: Application L4+
+          subcategory: Firewall
+          vendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+
+  # Virtual Links (Networks)
+  
+    gtp_net:
+      type: abc.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+        UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+        version: 1.0
+        name: GTPNet
+        description: GTP External Network
+        type: VL
+        category: VL
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: {get_input: gtp_net_network_name}
+          route_targets: {get_input: gtp_net_route_targets}
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN 
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: {get_input: gtp_net_cidr}
+          gateway_ip: {get_input: gtp_net_gateway_ip}
+          start_ip: {get_input: gtp_net_start_ip}
+          end_ip: {get_input: gtp_net_end_ip}
+    
+    sctp_a_net:
+      type: abc.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+        UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+        version: 1.0
+        name: SCTPANet
+        description: SCTP A External Network
+        type: VL
+        category: VL
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+          route_targets: 13979:105717
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.0/27 # HEAT ENV
+          gateway_ip: 107.243.37.1 # HEAT ENV
+          start_ip: 107.243.37.3 # HEAT ENV
+          end_ip: 107.243.37.30 # HEAT ENV
+      
+    sctp_b_net:
+      type: abc.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+        UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+        version: 1.0
+        name: SCTPBNet
+        description: SCTP B External Network
+        type: VL
+        category: VL
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+          route_targets: 13979:105719
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.32/24 # HEAT ENV
+          gateway_ip: 107.243.37.33 # HEAT ENV
+          start_ip: 107.243.37.35 # HEAT ENV
+          end_ip: 107.243.37.62 # HEAT ENV
+      
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithDiffVersionOfSameL3Network.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithDiffVersionOfSameL3Network.yml
new file mode 100644
index 0000000..e413955
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithDiffVersionOfSameL3Network.yml
@@ -0,0 +1,235 @@
+--- 
+description: "Service Template for deploing MME Service"
+imports: 
+  - 
+    vmmeToscaTemplate: 
+      file: vf_vmme_template_1.yml
+  - 
+    ExtVL: 
+      file: resource-Extvl-template.yml
+  - 
+    ? "Allotted Resource"
+    : 
+      file: resource-AllottedResource-template.yml
+metadata: 
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  category: Mobility
+  description: vMME_Service
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  name: vMME_Service
+  serviceEcompNaming: false
+  serviceHoming: false
+  type: Service
+topology_template: 
+  groups: 
+    external_networks: 
+      members: 
+        - sctp_a_net
+        - sctp_b_net
+        - gtp_net
+      properties: 
+        availability_zone_count: 1
+        contrail_service_instance: true
+      type: org.openecomp.groups.externalNetworks
+  inputs: 
+    gtp_net_cidr: 
+      default: 107.243.37.64/27
+      description: "The GTP network cidr"
+      type: string
+    gtp_net_end_ip: 
+      default: "107.243.37.94"
+      description: "The GTP network end ip"
+      type: string
+    gtp_net_gateway_ip: 
+      default: "107.243.37.65"
+      description: "The GTP network gateway"
+      type: string
+    gtp_net_network_name: 
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1
+      description: "The GTP network route targets"
+      type: string
+    gtp_net_route_targets: 
+      default: "13979:105715"
+      description: "The GTP network route targets"
+      type: string
+    gtp_net_start_ip: 
+      default: "107.243.37.67"
+      description: "The GTP network start ip"
+      type: string
+    mme_vf_deployment_node: 
+      description: "The target LCP node for deployment of this VF instance"
+      type: string
+    mme_vf_instance_name: 
+      description: "VF instance name"
+      type: string
+  node_templates: 
+    ? "Allotted Resource 2"
+    : 
+      metadata: 
+        UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+        category: "Allotted Resource"
+        description: "This is a VF - Allotted resource"
+        invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+        name: "Allotted Resource"
+        subcategory: "Allotted Resource"
+        type: VF
+        version: 1.0
+      type: org.openecomp.resource.vf.AllottedResource
+    ? "ExtVL 1"
+    : 
+      metadata: 
+        UUID: 3f8fa4d2-2b86-4b36-bbc8-ffb8f9f57468
+        category: Generic
+        description: "OPENECOMP generic virtual link (network) base type for all other service-level and global networks"
+        invariantUUID: f148dbb0-8c53-466d-9687-791c0e9d40cf
+        name: ExtVL
+        subcategory: "Network Elements"
+        type: VL
+        version: 2.0
+      type: org.openecomp.resource.vl.extVL
+    ? "ExtVL 2"
+    : 
+      metadata: 
+        UUID: 3f8fa4d2-2b86-4b36-bbc8-ffb8f9f57433
+        category: Generic
+        description: "OPENECOMP generic virtual link (network) base type for all other service-level and global networks"
+        invariantUUID: f148dbb0-8c53-466d-9687-791c0e9d40cf
+        name: ExtVL
+        subcategory: "Network Elements"
+        type: VL
+        version: 2.0
+      type: org.openecomp.resource.vl.extVL
+    gtp_net: 
+      metadata: 
+        UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+        category: VL
+        description: "GTP External Network"
+        invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+        name: GTPNet
+        resourceVendor: AT&T
+        type: VL
+        version: 1.0
+      properties: 
+        contrail_virtual_network: 
+          network_name: 
+            get_input: gtp_net_network_name
+          route_targets: 
+            get_input: gtp_net_route_targets
+        flow_pattern: E-LAN
+        l3_access_parameters: 
+          cidr: 
+            get_input: gtp_net_cidr
+          end_ip: 
+            get_input: gtp_net_end_ip
+          gateway_ip: 
+            get_input: gtp_net_gateway_ip
+          ip_version: 4
+          start_ip: 
+            get_input: gtp_net_start_ip
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_id: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: abc.openecomp.resource.vl.VL
+    mme: 
+      metadata: 
+        UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        category: "Application L4+"
+        description: vMME_VF
+        invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+        name: vMME_VF
+        resourceVendor: Ericsson
+        subcategory: Firewall
+        type: VF
+        version: 1.0
+      properties: 
+        vf_deployment_node: 
+          get_input: vf_deployment_node
+        vf_ecomp_name: false
+        vf_homing: false
+        vf_instance_name: 
+          get_input: vf_instance_name
+      requirements: 
+        - 
+          vlc1_sctp_a.link: 
+            capability: tosca.capabilities.network.Bindable
+            node: sctp_a_net
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          vlc1_sctp_b.link: 
+            capability: tosca.capabilities.network.Bindable
+            node: sctp_b_net
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          vlc1_gtp_net.link: 
+            capability: tosca.capabilities.network.Bindable
+            node: gtp_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vf.vmme
+    sctp_a_net: 
+      metadata: 
+        UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+        category: VL
+        description: "SCTP A External Network"
+        invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+        name: SCTPANet
+        resourceVendor: AT&T
+        type: VL
+        version: 1.0
+      properties: 
+        contrail_virtual_network: 
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+          route_targets: "13979:105717"
+        flow_pattern: E-LAN
+        l3_access_parameters: 
+          cidr: 107.243.37.0/27
+          end_ip: "107.243.37.30"
+          gateway_ip: "107.243.37.1"
+          ip_version: 4
+          start_ip: "107.243.37.3"
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: abc.openecomp.resource.vl.VL
+    sctp_b_net: 
+      metadata: 
+        UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+        category: VL
+        description: "SCTP B External Network"
+        invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+        name: SCTPBNet
+        resourceVendor: AT&T
+        type: VL
+        version: 1.0
+      properties: 
+        contrail_virtual_network: 
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+          route_targets: "13979:105719"
+        flow_pattern: E-LAN
+        l3_access_parameters: 
+          cidr: 107.243.37.32/24
+          end_ip: "107.243.37.62"
+          gateway_ip: "107.243.37.33"
+          ip_version: 4
+          start_ip: "107.243.37.35"
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_id: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: abc.openecomp.resource.vl.VL
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithDupL3Network.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithDupL3Network.yml
new file mode 100644
index 0000000..c72aab1
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithDupL3Network.yml
@@ -0,0 +1,235 @@
+--- 
+description: "Service Template for deploing MME Service"
+imports: 
+  - 
+    vmmeToscaTemplate: 
+      file: vf_vmme_template_1.yml
+  - 
+    ExtVL: 
+      file: resource-Extvl-template.yml
+  - 
+    ? "Allotted Resource"
+    : 
+      file: resource-AllottedResource-template.yml
+metadata: 
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  category: Mobility
+  description: vMME_Service
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  name: vMME_Service
+  serviceEcompNaming: false
+  serviceHoming: false
+  type: Service
+topology_template: 
+  groups: 
+    external_networks: 
+      members: 
+        - sctp_a_net
+        - sctp_b_net
+        - gtp_net
+      properties: 
+        availability_zone_count: 1
+        contrail_service_instance: true
+      type: org.openecomp.groups.externalNetworks
+  inputs: 
+    gtp_net_cidr: 
+      default: 107.243.37.64/27
+      description: "The GTP network cidr"
+      type: string
+    gtp_net_end_ip: 
+      default: "107.243.37.94"
+      description: "The GTP network end ip"
+      type: string
+    gtp_net_gateway_ip: 
+      default: "107.243.37.65"
+      description: "The GTP network gateway"
+      type: string
+    gtp_net_network_name: 
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1
+      description: "The GTP network route targets"
+      type: string
+    gtp_net_route_targets: 
+      default: "13979:105715"
+      description: "The GTP network route targets"
+      type: string
+    gtp_net_start_ip: 
+      default: "107.243.37.67"
+      description: "The GTP network start ip"
+      type: string
+    mme_vf_deployment_node: 
+      description: "The target LCP node for deployment of this VF instance"
+      type: string
+    mme_vf_instance_name: 
+      description: "VF instance name"
+      type: string
+  node_templates: 
+    ? "Allotted Resource 2"
+    : 
+      metadata: 
+        UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+        category: "Allotted Resource"
+        description: "This is a VF - Allotted resource"
+        invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+        name: "Allotted Resource"
+        subcategory: "Allotted Resource"
+        type: VF
+        version: 1.0
+      type: org.openecomp.resource.vf.AllottedResource
+    ? "ExtVL 1"
+    : 
+      metadata: 
+        UUID: 3f8fa4d2-2b86-4b36-bbc8-ffb8f9f57468
+        category: Generic
+        description: "OPENECOMP generic virtual link (network) base type for all other service-level and global networks"
+        invariantUUID: f148dbb0-8c53-466d-9687-791c0e9d40cf
+        name: ExtVL
+        subcategory: "Network Elements"
+        type: VL
+        version: 2.0
+      type: org.openecomp.resource.vl.extVL
+    ? "ExtVL 2"
+    : 
+      metadata: 
+        UUID: 3f8fa4d2-2b86-4b36-bbc8-ffb8f9f57468
+        category: Generic
+        description: "OPENECOMP generic virtual link (network) base type for all other service-level and global networks"
+        invariantUUID: f148dbb0-8c53-466d-9687-791c0e9d40cf
+        name: ExtVL
+        subcategory: "Network Elements"
+        type: VL
+        version: 2.0
+      type: org.openecomp.resource.vl.extVL
+    gtp_net: 
+      metadata: 
+        UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+        category: VL
+        description: "GTP External Network"
+        invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+        name: GTPNet
+        resourceVendor: AT&T
+        type: VL
+        version: 1.0
+      properties: 
+        contrail_virtual_network: 
+          network_name: 
+            get_input: gtp_net_network_name
+          route_targets: 
+            get_input: gtp_net_route_targets
+        flow_pattern: E-LAN
+        l3_access_parameters: 
+          cidr: 
+            get_input: gtp_net_cidr
+          end_ip: 
+            get_input: gtp_net_end_ip
+          gateway_ip: 
+            get_input: gtp_net_gateway_ip
+          ip_version: 4
+          start_ip: 
+            get_input: gtp_net_start_ip
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_id: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: abc.openecomp.resource.vl.VL
+    mme: 
+      metadata: 
+        UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        category: "Application L4+"
+        description: vMME_VF
+        invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+        name: vMME_VF
+        resourceVendor: Ericsson
+        subcategory: Firewall
+        type: VF
+        version: 1.0
+      properties: 
+        vf_deployment_node: 
+          get_input: vf_deployment_node
+        vf_ecomp_name: false
+        vf_homing: false
+        vf_instance_name: 
+          get_input: vf_instance_name
+      requirements: 
+        - 
+          vlc1_sctp_a.link: 
+            capability: tosca.capabilities.network.Bindable
+            node: sctp_a_net
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          vlc1_sctp_b.link: 
+            capability: tosca.capabilities.network.Bindable
+            node: sctp_b_net
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          vlc1_gtp_net.link: 
+            capability: tosca.capabilities.network.Bindable
+            node: gtp_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vf.vmme
+    sctp_a_net: 
+      metadata: 
+        UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+        category: VL
+        description: "SCTP A External Network"
+        invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+        name: SCTPANet
+        resourceVendor: AT&T
+        type: VL
+        version: 1.0
+      properties: 
+        contrail_virtual_network: 
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+          route_targets: "13979:105717"
+        flow_pattern: E-LAN
+        l3_access_parameters: 
+          cidr: 107.243.37.0/27
+          end_ip: "107.243.37.30"
+          gateway_ip: "107.243.37.1"
+          ip_version: 4
+          start_ip: "107.243.37.3"
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: abc.openecomp.resource.vl.VL
+    sctp_b_net: 
+      metadata: 
+        UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+        category: VL
+        description: "SCTP B External Network"
+        invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+        name: SCTPBNet
+        resourceVendor: AT&T
+        type: VL
+        version: 1.0
+      properties: 
+        contrail_virtual_network: 
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+          route_targets: "13979:105719"
+        flow_pattern: E-LAN
+        l3_access_parameters: 
+          cidr: 107.243.37.32/24
+          end_ip: "107.243.37.62"
+          gateway_ip: "107.243.37.33"
+          ip_version: 4
+          start_ip: "107.243.37.35"
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_id: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: abc.openecomp.resource.vl.VL
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithInvIdGreaterThanSpecifiedLimit.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithInvIdGreaterThanSpecifiedLimit.yml
new file mode 100644
index 0000000..37bada7
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithInvIdGreaterThanSpecifiedLimit.yml
@@ -0,0 +1,98 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b70
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  type: Service
+  name: vMME_Service
+  description: vMME_Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+    
+topology_template:
+
+  inputs:    
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity 
+      
+  node_templates:
+
+    mme: # vMME VNF
+      type: org.openecomp.resource.vf.vmme
+
+      metadata:
+          invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version: 1.0
+          name: vMME_VF
+          description: vMME_VF
+          type: VF
+          category: Application L4+
+          subcategory: Firewall
+          resourceVendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithInvIdLesserThanSpecifiedLimit.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithInvIdLesserThanSpecifiedLimit.yml
new file mode 100644
index 0000000..15157e9
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithInvIdLesserThanSpecifiedLimit.yml
@@ -0,0 +1,98 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f00
+  type: Service
+  name: vMME_Service
+  description: vMME_Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+    
+topology_template:
+
+  inputs:    
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity 
+      
+  node_templates:
+
+    mme: # vMME VNF
+      type: org.openecomp.resource.vf.vmme
+
+      metadata:
+          invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version: 1.0
+          name: vMME_VF
+          description: vMME_VF
+          type: VF
+          category: Application L4+
+          subcategory: Firewall
+          resourceVendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithL3Network.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithL3Network.yml
new file mode 100644
index 0000000..f262ef6
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithL3Network.yml
@@ -0,0 +1,223 @@
+--- 
+description: "Service Template for deploing MME Service"
+imports: 
+  - 
+    vmmeToscaTemplate: 
+      file: vf_vmme_template_1.yml
+  - 
+    ExtVL: 
+      file: resource-Extvl-template.yml
+  - 
+    ? "Allotted Resource"
+    : 
+      file: resource-AllottedResource-template.yml
+metadata: 
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  category: Mobility
+  description: vMME_Service
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  name: vMME_Service
+  serviceEcompNaming: false
+  serviceHoming: false
+  type: Service
+topology_template: 
+  groups: 
+    external_networks: 
+      members: 
+        - sctp_a_net
+        - sctp_b_net
+        - gtp_net
+      properties: 
+        availability_zone_count: 1
+        contrail_service_instance: true
+      type: org.openecomp.groups.externalNetworks
+  inputs: 
+    gtp_net_cidr: 
+      default: 107.243.37.64/27
+      description: "The GTP network cidr"
+      type: string
+    gtp_net_end_ip: 
+      default: "107.243.37.94"
+      description: "The GTP network end ip"
+      type: string
+    gtp_net_gateway_ip: 
+      default: "107.243.37.65"
+      description: "The GTP network gateway"
+      type: string
+    gtp_net_network_name: 
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1
+      description: "The GTP network route targets"
+      type: string
+    gtp_net_route_targets: 
+      default: "13979:105715"
+      description: "The GTP network route targets"
+      type: string
+    gtp_net_start_ip: 
+      default: "107.243.37.67"
+      description: "The GTP network start ip"
+      type: string
+    mme_vf_deployment_node: 
+      description: "The target LCP node for deployment of this VF instance"
+      type: string
+    mme_vf_instance_name: 
+      description: "VF instance name"
+      type: string
+  node_templates: 
+    ? "Allotted Resource 2"
+    : 
+      metadata: 
+        UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+        category: "Allotted Resource"
+        description: "This is a VF - Allotted resource"
+        invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+        name: "Allotted Resource"
+        subcategory: "Allotted Resource"
+        type: VF
+        version: 1.0
+      type: org.openecomp.resource.vf.AllottedResource
+    ? "ExtVL 1"
+    : 
+      metadata: 
+        UUID: 3f8fa4d2-2b86-4b36-bbc8-ffb8f9f57468
+        category: Generic
+        description: "OPENECOMP generic virtual link (network) base type for all other service-level and global networks"
+        invariantUUID: f148dbb0-8c53-466d-9687-791c0e9d40cf
+        name: ExtVL
+        subcategory: "Network Elements"
+        type: VL
+        version: 2.0
+      type: org.openecomp.resource.vl.extVL
+    gtp_net: 
+      metadata: 
+        UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+        category: VL
+        description: "GTP External Network"
+        invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+        name: GTPNet
+        resourceVendor: AT&T
+        type: VL
+        version: 1.0
+      properties: 
+        contrail_virtual_network: 
+          network_name: 
+            get_input: gtp_net_network_name
+          route_targets: 
+            get_input: gtp_net_route_targets
+        flow_pattern: E-LAN
+        l3_access_parameters: 
+          cidr: 
+            get_input: gtp_net_cidr
+          end_ip: 
+            get_input: gtp_net_end_ip
+          gateway_ip: 
+            get_input: gtp_net_gateway_ip
+          ip_version: 4
+          start_ip: 
+            get_input: gtp_net_start_ip
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_id: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: abc.openecomp.resource.vl.VL
+    mme: 
+      metadata: 
+        UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        category: "Application L4+"
+        description: vMME_VF
+        invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+        name: vMME_VF
+        resourceVendor: Ericsson
+        subcategory: Firewall
+        type: VF
+        version: 1.0
+      properties: 
+        vf_deployment_node: 
+          get_input: vf_deployment_node
+        vf_ecomp_name: false
+        vf_homing: false
+        vf_instance_name: 
+          get_input: vf_instance_name
+      requirements: 
+        - 
+          vlc1_sctp_a.link: 
+            capability: tosca.capabilities.network.Bindable
+            node: sctp_a_net
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          vlc1_sctp_b.link: 
+            capability: tosca.capabilities.network.Bindable
+            node: sctp_b_net
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          vlc1_gtp_net.link: 
+            capability: tosca.capabilities.network.Bindable
+            node: gtp_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vf.vmme
+    sctp_a_net: 
+      metadata: 
+        UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+        category: VL
+        description: "SCTP A External Network"
+        invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+        name: SCTPANet
+        resourceVendor: AT&T
+        type: VL
+        version: 1.0
+      properties: 
+        contrail_virtual_network: 
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+          route_targets: "13979:105717"
+        flow_pattern: E-LAN
+        l3_access_parameters: 
+          cidr: 107.243.37.0/27
+          end_ip: "107.243.37.30"
+          gateway_ip: "107.243.37.1"
+          ip_version: 4
+          start_ip: "107.243.37.3"
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: abc.openecomp.resource.vl.VL
+    sctp_b_net: 
+      metadata: 
+        UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+        category: VL
+        description: "SCTP B External Network"
+        invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+        name: SCTPBNet
+        resourceVendor: AT&T
+        type: VL
+        version: 1.0
+      properties: 
+        contrail_virtual_network: 
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+          route_targets: "13979:105719"
+        flow_pattern: E-LAN
+        l3_access_parameters: 
+          cidr: 107.243.37.32/24
+          end_ip: "107.243.37.62"
+          gateway_ip: "107.243.37.33"
+          ip_version: 4
+          start_ip: "107.243.37.35"
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_id: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: abc.openecomp.resource.vl.VL
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithL3NetworkInVFMod.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithL3NetworkInVFMod.yml
new file mode 100644
index 0000000..1853802
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithL3NetworkInVFMod.yml
@@ -0,0 +1,211 @@
+--- 
+description: "Service Template for deploing MME Service"
+imports: 
+  - 
+    vmmeToscaTemplate: 
+      file: vf_vmme_template_1.yml
+  - 
+    ExtVL: 
+      file: resource-Extvl-template.yml
+  - 
+    ? "Allotted Resource"
+    : 
+      file: resource-AllottedResource-template.yml
+metadata: 
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  category: Mobility
+  description: vMME_Service
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  name: vMME_Service
+  serviceEcompNaming: false
+  serviceHoming: false
+  type: Service
+topology_template: 
+  groups: 
+    external_networks: 
+      members: 
+        - sctp_a_net
+        - sctp_b_net
+        - gtp_net
+      properties: 
+        availability_zone_count: 1
+        contrail_service_instance: true
+      type: org.openecomp.groups.externalNetworks
+  inputs: 
+    gtp_net_cidr: 
+      default: 107.243.37.64/27
+      description: "The GTP network cidr"
+      type: string
+    gtp_net_end_ip: 
+      default: "107.243.37.94"
+      description: "The GTP network end ip"
+      type: string
+    gtp_net_gateway_ip: 
+      default: "107.243.37.65"
+      description: "The GTP network gateway"
+      type: string
+    gtp_net_network_name: 
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1
+      description: "The GTP network route targets"
+      type: string
+    gtp_net_route_targets: 
+      default: "13979:105715"
+      description: "The GTP network route targets"
+      type: string
+    gtp_net_start_ip: 
+      default: "107.243.37.67"
+      description: "The GTP network start ip"
+      type: string
+    mme_vf_deployment_node: 
+      description: "The target LCP node for deployment of this VF instance"
+      type: string
+    mme_vf_instance_name: 
+      description: "VF instance name"
+      type: string
+  node_templates: 
+    ? "Allotted Resource 2"
+    : 
+      metadata: 
+        UUID: f32afdc3-6308-4f0c-a476-0d39c8a1fb4d
+        category: "Allotted Resource"
+        description: "This is a VF - Allotted resource"
+        invariantUUID: a54a5235-b69d-4f8a-838b-d011e6783fa5
+        name: "Allotted Resource"
+        subcategory: "Allotted Resource"
+        type: VF
+        version: 3.0
+      type: org.openecomp.resource.vf.AllottedResource
+    gtp_net: 
+      metadata: 
+        UUID: 101a0ed2e-a12d-ff20-004e-cc7af4daffc3
+        category: VL
+        description: "GTP External Network"
+        invariantUUID: ab2995c59-ff34-4f86-a60d-371d4d9d1896
+        name: GTPNet
+        resourceVendor: AT&T
+        type: VL
+        version: 1.0
+      properties: 
+        contrail_virtual_network: 
+          network_name: 
+            get_input: gtp_net_network_name
+          route_targets: 
+            get_input: gtp_net_route_targets
+        flow_pattern: E-LAN
+        l3_access_parameters: 
+          cidr: 
+            get_input: gtp_net_cidr
+          end_ip: 
+            get_input: gtp_net_end_ip
+          gateway_ip: 
+            get_input: gtp_net_gateway_ip
+          ip_version: 4
+          start_ip: 
+            get_input: gtp_net_start_ip
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_id: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: abc.openecomp.resource.vl.VL
+    mme: 
+      metadata: 
+        UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        category: "Application L4+"
+        description: vMME_VF
+        invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+        name: vMME_VF
+        resourceVendor: Ericsson
+        subcategory: Firewall
+        type: VF
+        version: 2.0
+      properties: 
+        vf_deployment_node: 
+          get_input: vf_deployment_node
+        vf_ecomp_name: false
+        vf_homing: false
+        vf_instance_name: 
+          get_input: vf_instance_name
+      requirements: 
+        - 
+          vlc1_sctp_a.link: 
+            capability: tosca.capabilities.network.Bindable
+            node: sctp_a_net
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          vlc1_sctp_b.link: 
+            capability: tosca.capabilities.network.Bindable
+            node: sctp_b_net
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          vlc1_gtp_net.link: 
+            capability: tosca.capabilities.network.Bindable
+            node: gtp_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vf.vmme
+    sctp_a_net: 
+      metadata: 
+        UUID: 1890ed2e-abcd-3f20-124e-cc7af4da4321
+        category: VL
+        description: "SCTP A External Network"
+        invariantUUID: 29205c59-1111-4f86-880d-371d4d9dc999
+        name: SCTPANet
+        resourceVendor: AT&T
+        type: VL
+        version: 1.0
+      properties: 
+        contrail_virtual_network: 
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPA_net_1
+          route_targets: "13979:105717"
+        flow_pattern: E-LAN
+        l3_access_parameters: 
+          cidr: 107.243.37.0/27
+          end_ip: "107.243.37.30"
+          gateway_ip: "107.243.37.1"
+          ip_version: 4
+          start_ip: "107.243.37.3"
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: abc.openecomp.resource.vl.VL
+    sctp_b_net: 
+      metadata: 
+        UUID: 1af0ed2e-abcd-3f20-834e-cc7af4dafc45
+        category: VL
+        description: "SCTP B External Network"
+        invariantUUID: 89595c59-2134-4f86-880d-371d4d9d12a6
+        name: SCTPBNet
+        resourceVendor: AT&T
+        type: VL
+        version: 1.0
+      properties: 
+        contrail_virtual_network: 
+          network_name: MME-24474-Ericsson-WTC-lab_gn_SCTPB_net_1
+          route_targets: "13979:105719"
+        flow_pattern: E-LAN
+        l3_access_parameters: 
+          cidr: 107.243.37.32/24
+          end_ip: "107.243.37.62"
+          gateway_ip: "107.243.37.33"
+          ip_version: 4
+          start_ip: "107.243.37.35"
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_id: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: abc.openecomp.resource.vl.VL
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithUpdatedUUIDInConfig.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithUpdatedUUIDInConfig.yml
new file mode 100644
index 0000000..11ab6e1
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/service_vmme_template_WithUpdatedUUIDInConfig.yml
@@ -0,0 +1,98 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: Service Template for deploing MME Service
+
+metadata:
+  invariantUUID: e255f20c-5331-4245-9ad5-8861a73080b7
+  UUID: 7787da18-7516-40cf-bec0-ebd4202c60f0
+  type: Service
+  name: vMME_Service
+  description: vMME_Service
+  category: Mobility
+  serviceEcompNaming: false
+  serviceHoming: false
+
+imports:
+  vmmeToscaTemplate:
+    file: vf_vmme_template_1.yml
+    
+topology_template:
+
+  inputs:    
+    mme_vf_instance_name:
+      type: string
+      description: VF instance name
+    mme_vf_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this VF instance
+    gtp_net_network_name:
+      type: string
+      description: The GTP network route targets
+      default: MME-24474-Ericsson-WTC-lab_gn_GTP_net_1 # HEAT ENV
+    gtp_net_route_targets:
+      type: string
+      description: The GTP network route targets
+      default: "13979:105715" # HEAT ENV
+    gtp_net_cidr:
+      type: string
+      description: The GTP network cidr
+      default: 107.243.37.64/27 # HEAT ENV
+    gtp_net_gateway_ip:
+      type: string
+      description: The GTP network gateway
+      default: 107.243.37.65 # HEAT ENV
+    gtp_net_start_ip:
+      type: string
+      description: The GTP network start ip
+      default: 107.243.37.67 # HEAT ENV
+    gtp_net_end_ip:
+      type: string
+      description: The GTP network end ip
+      default: 107.243.37.94 # HEAT ENV
+     # more inputs were removed for brevity 
+      
+  node_templates:
+
+    mme: # vMME VNF
+      type: org.openecomp.resource.vf.vmme
+
+      metadata:
+          invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+          UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+          version: 1.0
+          name: vMME_VF
+          description: vMME_VF
+          type: VF
+          category: Application L4+
+          subcategory: Firewall
+          resourceVendor: Ericsson
+
+      properties:
+        vf_ecomp_name: false
+        vf_instance_name: { get_input: vf_instance_name }
+        vf_homing: false
+        vf_deployment_node: { get_input: vf_deployment_node }
+
+      requirements:
+        - vlc1_sctp_a.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_a_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_sctp_b.link:
+              capability: tosca.capabilities.network.Bindable
+              node: sctp_b_net
+              relationship: tosca.relationships.network.BindsTo
+        - vlc1_gtp_net.link:
+              capability: tosca.capabilities.network.Bindable
+              node: gtp_net
+              relationship: tosca.relationships.network.BindsTo
+
+  groups:
+
+    external_networks: # vMME_External_Network
+      type: org.openecomp.groups.externalNetworks
+      properties:
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+              
+      members: [ sctp_a_net, sctp_b_net, gtp_net ]
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_DiffVerOfSameVFModWithSameInvId.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_DiffVerOfSameVFModWithSameInvId.yml
new file mode 100644
index 0000000..b6076b1
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_DiffVerOfSameVFModWithSameInvId.yml
@@ -0,0 +1,1353 @@
+--- 
+description: "VF Template for pseodo vMME"
+imports: 
+  NovaServerGlobalTypes: 
+    file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata: 
+  category: "Application L4+"
+  description: vMME_VF
+  invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+  name: vMME_VF
+  subcategory: Firewall
+  type: VF
+  UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+  resourceVendor: Ericsson
+topology_template: 
+  groups: 
+    vfmoduleVmmeModule-1: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      metadata: 
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelName: "vMME::module-1"
+        vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+      properties: 
+        artifacts: 
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+        availability_zone_count: 2
+        contrail_service_instance: true
+        vf_module_description: "vMME expansion VF Module"
+        vf_module_label: "vMME Expansion VF Module"
+        vf_module_type: Expansion
+        volume_group: false
+      type: org.openecomp.groups.VfModule
+
+    vfmoduleVmmeModule-2:
+      members:
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      metadata:
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelName: "vMME::module-2"
+        vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7fef
+        vfModuleModelVersion: 2
+      properties:
+        artifacts:
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+        availability_zone_count: 2
+        contrail_service_instance: true
+        vf_module_description: "vMME expansion VF Module"
+        vf_module_label: "vMME Expansion VF Module"
+        vf_module_type: Expansion
+        volume_group: false
+      type: org.openecomp.groups.VfModule
+    vmme_small: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      properties: 
+        description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+        heat_file: ../Artifacts/vmme_small.yml
+      type: org.openecomp.groups.heat.HeatStack
+    vmme_small_create_fsb: 
+      members: 
+        - FSB1_volume
+        - FSB2_volume
+      properties: 
+        description: "server template for vMME"
+        heat_file: ../Artifacts/vmme_small_create_fsb.yml
+      type: org.openecomp.groups.heat.HeatStack
+  inputs: 
+    Internal1_net_cidr: 
+      default: 169.253.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_gateway_ip: 
+      default: "169.253.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_cidr: 
+      default: 169.255.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_gateway_ip: 
+      default: "169.255.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    fsb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb1_vfc_image_name: 
+      default: MME_FSB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    fsb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    fsb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb2_vfc_flavor: 
+      defualt: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb2_vfc_image_name: 
+      default: MME_FSB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB002
+      description: "VFC instance name"
+      type: string
+    fsb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb1_vfc_image_name: 
+      default: MME_GPB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb2_vfc_image_name: 
+      default: MME_GPB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb1_vfc_image_name: 
+      default: MME_NCB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb2_vfc_image_name: 
+      default: MME_NCB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    network_deployment_node: 
+      description: "The target LCP node for deployment of this Network instance"
+      type: string
+    oam_net_id: 
+      default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+      description: "uuid of oam network"
+      hidden: false
+      immutable: false
+      type: string
+    vlc1_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc1_vfc_image_name: 
+      default: MME_VLC1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    vlc2_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc2_vfc_image_name: 
+      default: MME_VLC2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+  node_templates: 
+    FSB1: 
+      capabilities: 
+        monitoring_capabilty: 
+          properties: 
+            name: high_cpu
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    FSB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    Internal1_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal1_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal1_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal1_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    Internal2_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal2_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal2_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal2_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    NCB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    NCB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc1_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc2_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    fsb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    oam_net: 
+      metadata: 
+        category: VL
+        description: "Mobility OAM Network"
+        invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+        name: "Mobility OAM Network"
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+        resourceVendor: AT&T
+        version: 2.0
+      properties: 
+        flow_pattern: E-LAN
+        layer_protocol: IP
+        network_id: 
+          get_input: oam_net_id
+        network_technology: Contrail
+        network_type: vIPR_ATM_OAM
+        test_access: none
+      type: org.openecomp.resource.vl.OAM
+    vlc1_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+  policies: 
+    - 
+      mme_autoscale_policy: 
+        properties: 
+          factor: cpu_load
+          increment: 1
+          max_instances: 4
+          min_instances: 1
+          threshold: 80%
+        target: 
+          - vfmoduleVmmeModule-1
+        type: org.openecomp.policy.Autoscaling
+  substitution_mapping: 
+    requirements: 
+      - 
+        vlc1_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc2_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_a.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_b.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+    type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_DiffVerOfSameVF_1.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_DiffVerOfSameVF_1.yml
new file mode 100644
index 0000000..6aee48b
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_DiffVerOfSameVF_1.yml
@@ -0,0 +1,1299 @@
+--- 
+description: "VF Template for pseodo vMME"
+imports: 
+  NovaServerGlobalTypes: 
+    file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata: 
+  category: "Application L4+"
+  description: vMME_VF
+  invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+  name: vMME_VF
+  subcategory: Firewall
+  type: VF
+  UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+  resourceVendor: Ericsson
+topology_template: 
+  groups: 
+    vfmoduleVmmeModule-1: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      metadata: 
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelName: "vMME::module-1"
+        vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+      properties: 
+        artifacts: 
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+        availability_zone_count: 2
+        contrail_service_instance: true
+        vf_module_description: "vMME expansion VF Module"
+        vf_module_label: "vMME Expansion VF Module"
+        vf_module_type: Expansion
+        volume_group: false
+      type: org.openecomp.groups.VfModule
+    vmme_small: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      properties: 
+        description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+        heat_file: ../Artifacts/vmme_small.yml
+      type: org.openecomp.groups.heat.HeatStack
+    vmme_small_create_fsb: 
+      members: 
+        - FSB1_volume
+        - FSB2_volume
+      properties: 
+        description: "server template for vMME"
+        heat_file: ../Artifacts/vmme_small_create_fsb.yml
+      type: org.openecomp.groups.heat.HeatStack
+  inputs: 
+    Internal1_net_cidr: 
+      default: 169.253.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_gateway_ip: 
+      default: "169.253.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_cidr: 
+      default: 169.255.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_gateway_ip: 
+      default: "169.255.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    fsb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb1_vfc_image_name: 
+      default: MME_FSB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    fsb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    fsb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb2_vfc_flavor: 
+      defualt: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb2_vfc_image_name: 
+      default: MME_FSB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB002
+      description: "VFC instance name"
+      type: string
+    fsb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb1_vfc_image_name: 
+      default: MME_GPB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb2_vfc_image_name: 
+      default: MME_GPB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb1_vfc_image_name: 
+      default: MME_NCB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb2_vfc_image_name: 
+      default: MME_NCB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    network_deployment_node: 
+      description: "The target LCP node for deployment of this Network instance"
+      type: string
+    oam_net_id: 
+      default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+      description: "uuid of oam network"
+      hidden: false
+      immutable: false
+      type: string
+    vlc1_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc1_vfc_image_name: 
+      default: MME_VLC1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    vlc2_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc2_vfc_image_name: 
+      default: MME_VLC2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+  node_templates: 
+    FSB1: 
+      capabilities: 
+        monitoring_capabilty: 
+          properties: 
+            name: high_cpu
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    FSB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    Internal1_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal1_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal1_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal1_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    Internal2_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal2_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal2_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal2_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    NCB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    NCB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc1_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc2_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    fsb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    oam_net: 
+      metadata: 
+        category: VL
+        description: "Mobility OAM Network"
+        invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+        name: "Mobility OAM Network"
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+        resourceVendor: AT&T
+        version: 2.0
+      properties: 
+        flow_pattern: E-LAN
+        layer_protocol: IP
+        network_id: 
+          get_input: oam_net_id
+        network_technology: Contrail
+        network_type: vIPR_ATM_OAM
+        test_access: none
+      type: org.openecomp.resource.vl.OAM
+    vlc1_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+  policies: 
+    - 
+      mme_autoscale_policy: 
+        properties: 
+          factor: cpu_load
+          increment: 1
+          max_instances: 4
+          min_instances: 1
+          threshold: 80%
+        target: 
+          - vfmoduleVmmeModule-1
+        type: org.openecomp.policy.Autoscaling
+  substitution_mapping: 
+    requirements: 
+      - 
+        vlc1_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc2_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_a.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_b.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+    type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_DiffVerOfSameVF_2.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_DiffVerOfSameVF_2.yml
new file mode 100644
index 0000000..1e67b68
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_DiffVerOfSameVF_2.yml
@@ -0,0 +1,1299 @@
+--- 
+description: "VF Template for pseodo vMME"
+imports: 
+  NovaServerGlobalTypes: 
+    file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata: 
+  category: "Application L4+"
+  description: vMME_VF
+  invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+  name: vMME_VF1
+  subcategory: Firewall
+  type: VF
+  UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7fef
+  resourceVendor: Ericsson
+topology_template: 
+  groups: 
+    vfmoduleVmmeModule-1: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      metadata: 
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelName: "vMME::module-1"
+        vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+      properties: 
+        artifacts: 
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+        availability_zone_count: 2
+        contrail_service_instance: true
+        vf_module_description: "vMME expansion VF Module"
+        vf_module_label: "vMME Expansion VF Module"
+        vf_module_type: Expansion
+        volume_group: false
+      type: org.openecomp.groups.VfModule
+    vmme_small: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      properties: 
+        description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+        heat_file: ../Artifacts/vmme_small.yml
+      type: org.openecomp.groups.heat.HeatStack
+    vmme_small_create_fsb: 
+      members: 
+        - FSB1_volume
+        - FSB2_volume
+      properties: 
+        description: "server template for vMME"
+        heat_file: ../Artifacts/vmme_small_create_fsb.yml
+      type: org.openecomp.groups.heat.HeatStack
+  inputs: 
+    Internal1_net_cidr: 
+      default: 169.253.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_gateway_ip: 
+      default: "169.253.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_cidr: 
+      default: 169.255.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_gateway_ip: 
+      default: "169.255.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    fsb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb1_vfc_image_name: 
+      default: MME_FSB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    fsb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    fsb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb2_vfc_flavor: 
+      defualt: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb2_vfc_image_name: 
+      default: MME_FSB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB002
+      description: "VFC instance name"
+      type: string
+    fsb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb1_vfc_image_name: 
+      default: MME_GPB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb2_vfc_image_name: 
+      default: MME_GPB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb1_vfc_image_name: 
+      default: MME_NCB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb2_vfc_image_name: 
+      default: MME_NCB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    network_deployment_node: 
+      description: "The target LCP node for deployment of this Network instance"
+      type: string
+    oam_net_id: 
+      default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+      description: "uuid of oam network"
+      hidden: false
+      immutable: false
+      type: string
+    vlc1_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc1_vfc_image_name: 
+      default: MME_VLC1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    vlc2_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc2_vfc_image_name: 
+      default: MME_VLC2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+  node_templates: 
+    FSB1: 
+      capabilities: 
+        monitoring_capabilty: 
+          properties: 
+            name: high_cpu
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    FSB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    Internal1_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal1_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal1_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal1_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    Internal2_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal2_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal2_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal2_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    NCB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    NCB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc1_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc2_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    fsb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    oam_net: 
+      metadata: 
+        category: VL
+        description: "Mobility OAM Network"
+        invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+        name: "Mobility OAM Network"
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+        resourceVendor: AT&T
+        version: 2.0
+      properties: 
+        flow_pattern: E-LAN
+        layer_protocol: IP
+        network_id: 
+          get_input: oam_net_id
+        network_technology: Contrail
+        network_type: vIPR_ATM_OAM
+        test_access: none
+      type: org.openecomp.resource.vl.OAM
+    vlc1_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+  policies: 
+    - 
+      mme_autoscale_policy: 
+        properties: 
+          factor: cpu_load
+          increment: 1
+          max_instances: 4
+          min_instances: 1
+          threshold: 80%
+        target: 
+          - vfmoduleVmmeModule-1
+        type: org.openecomp.policy.Autoscaling
+  substitution_mapping: 
+    requirements: 
+      - 
+        vlc1_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc2_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_a.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_b.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+    type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_DupVFModUUID.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_DupVFModUUID.yml
new file mode 100644
index 0000000..b8e80df
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_DupVFModUUID.yml
@@ -0,0 +1,1242 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: VF Template for pseodo vMME 
+
+# metadata of the VF model
+metadata:
+  invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+  UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+  name: vMME_VF
+  description: vMME_VF
+  type: VF
+  category: Application L4+
+  subcategory: Firewall
+  vendor: Ericsson
+
+# imports include all other tosca definitions that are required for this template
+imports:
+  NovaServerGlobalTypes:
+    file: NovaServerGlobalTypesServiceTemplate.yaml
+  
+topology_template:
+
+# inputs are all the HEAT_ENV parameters and also the editable properties of the VF's internal resources (VFCs, connection points and networks)
+  inputs:    
+    fsb1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    fsb1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    fsb1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_FSB1_16ACP03.qcow2
+    fsb1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    fsb2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB002
+    fsb2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    fsb2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_FSB2_16ACP03.qcow2
+    fsb2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      defualt: m4.xlarge4
+    ncb1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    ncb1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    ncb1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_NCB1_16ACP03.qcow2
+    ncb1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    ncb2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    ncb2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    ncb2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_NCB2_16ACP03.qcow2
+    ncb2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    gpb1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    gpb1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    gpb1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_GPB1_16ACP03.qcow2
+    gpb1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    gpb2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    gpb2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    gpb2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_GPB2_16ACP03.qcow2
+    gpb2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    vlc1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    vlc1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    vlc1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_VLC1_16ACP03.qcow2
+    vlc1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    vlc2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    vlc2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    vlc2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_VLC2_16ACP03.qcow2
+    vlc2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    
+    fsb1_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    fsb1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    fsb1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    fsb2_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    fsb2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    fsb2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    
+    ncb1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    ncb1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    ncb2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    ncb2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    gpb1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    gpb1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    gpb2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    gpb2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    vlc1_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc1_gtp_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc1_sctp_a_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc1_sctp_b_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221           
+    vlc1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    vlc1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12  
+    vlc2_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc2_gtp_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc2_sctp_a_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc2_sctp_b_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221           
+    vlc2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    vlc2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12  
+    Internal1_net_dhcp:
+      hidden: false
+      immutable: false
+      type: string
+      default: 'False'
+    Internal1_net_cidr:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.253.0.0/17
+    Internal1_net_gateway_ip:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.253.0.3
+    Internal2_net_dhcp:
+      hidden: false
+      immutable: false
+      type: string
+      default: 'False'
+    Internal2_net_cidr:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.255.0.0/17
+    Internal2_net_gateway_ip:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.255.0.3
+    network_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this Network instance
+    oam_net_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: uuid of oam network
+      default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+
+  node_templates:
+
+    # VFCs / VMs
+    FSB1: # VFC1 / VM1
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        resourceSubcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: fsb1_vfc_instance_name} 
+        vfc_type_tag: {get_input: fsb1_vfc_type_tag} 
+        vfc_description: FSB1
+        vfc_image_name: {get_input: fsb1_vfc_image_name} 
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: fsb1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: fsb1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capabilty:
+          properties:
+            name: high_cpu
+            
+
+    FSB2: # VFC2 / VM2
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        resourceSubcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: fsb2_vfc_instance_name} 
+        vfc_type_tag: {get_input: fsb2_vfc_type_tag} 
+        vfc_description: FSB2
+        vfc_image_name: {get_input: fsb2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: fsb2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: fsb2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    NCB1: # VFC3 / MV3
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        resourceSubcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: ncb1_vfc_instance_name} 
+        vfc_type_tag: {get_input: ncb1_vfc_type_tag} 
+        vfc_description: NCB1
+        vfc_image_name: {get_input: ncb1_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: ncb1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: ncb1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    NCB2: # VFC4 / VM4
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        resourceSubcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: ncb2_vfc_instance_name} 
+        vfc_type_tag: {get_input: ncb2_vfc_type_tag} 
+        vfc_description: NCB2
+        vfc_image_name: {get_input: ncb2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: ncb2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: ncb2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    GPB1: # VFC5 / VM5
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        resourceSubcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: gpb1_vfc_instance_name} 
+        vfc_type_tag: {get_input: gpb1_vfc_type_tag} 
+        vfc_description: GPB1
+        vfc_image_name: {get_input: gpb1_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: gpb1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: gpb1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+    
+    GPB2: # VFC6 / VM6
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        resourceSubcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: gpb2_vfc_instance_name} 
+        vfc_type_tag: {get_input: gpb2_vfc_type_tag} 
+        vfc_description: GPB2
+        vfc_image_name: {get_input: gpb2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: gpb2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: gpb2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    VLC1: # VFC7 / VM7
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        resourceSubcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: vlc1_vfc_instance_name} 
+        vfc_type_tag: {get_input: vlc1_vfc_type_tag} 
+        vfc_description: VLC1
+        vfc_image_name: {get_input: vlc1_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: vlc1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: vlc1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    VLC2: # VFC8 / VM8
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        resourceSubcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: vlc2_vfc_instance_name} 
+        vfc_type_tag: {get_input: vlc2_vfc_type_tag} 
+        vfc_description: VLC2
+        vfc_image_name: {get_input: vlc2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: vlc2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: vlc2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+      
+      
+  # Connection Points
+
+    fsb1_oam: # VFC1 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: fsb1_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb1_internal1: # VFC1 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address:  {get_input: fsb1_internal1_mac_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+        
+    fsb1_internal2: # VFC1 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: fsb1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb2_oam: # VFC2 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: fsb2_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb2_internal1: # VFC2 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: fsb2_internal1_mac_address}  
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb2_internal2: # VFC2 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: fsb2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb1_internal1: # VFC3 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb1_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb1_internal2: # VFC3 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb2_internal1: # VFC4 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb2_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb2_internal2: # VFC4 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb1_internal1: # VFC5 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb1_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb1_internal2: # VFC5 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb2_internal1: # VFC6 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb2_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb2_internal2: # VFC6 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc1_oam: # VFC7 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc1_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc1_internal2: # VFC7 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: vlc1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc1_sctp_a: # VFC7 eca_sctp_a CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_a_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_a_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc1_sctp_b: # VFC7 eca_sctp_b CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_b_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_b_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc1_gtp_net: # VFC7 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc1_gtp_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: gtp_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc2_oam: # VFC8 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc2_internal1: # VFC8 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: vlc2_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc2_internal2: # VFC8 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: vlc2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc2_sctp_a: # VFC8 eca_sctp_a CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_a_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_a_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc2_sctp_b: # VFC8 eca_sctp_b CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_b_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_b_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc2_gtp_net: # VFC8 gtp CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_gtp_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: gtp_net
+              # relationship: tosca.relationships.network.BindsTo
+
+  # Virtual Links (Networks)
+  
+    Internal1_net:
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: Network
+        description: Internal Network
+        type: VL
+        category: Generic
+        subcategory: Infrastructure
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_role: 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        ip_version: 4
+        enable_dhcp: {get_input: Internal1_net_enable_dhcp}
+        cidr: {get_input: Internal1_net_cidr}
+        gateway_ip: {get_input: Internal1_net_gateway_ip}
+     
+    Internal2_net:
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: Network
+        description: Internal Network
+        type: VL
+        category: Generic
+        subcategory: Infrastructure
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_role: 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        ip_version: 4
+        enable_dhcp: {get_input: Internal2_net_enable_dhcp}
+        cidr: {get_input: Internal2_net_cidr}
+        gateway_ip: {get_input: Internal2_net_gateway_ip}
+  
+    
+    oam_net:
+      type: org.openecomp.resource.vl.OAM
+
+      metadata:
+        invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+        version: 2.0
+        name: Mobility OAM Network
+        description: Mobility OAM Network
+        type: VL
+        category: VL
+        vendor: AT&T
+
+      properties:
+        network_type: vIPR_ATM_OAM
+        network_technology: Contrail
+        network_id: {get_input: oam_net_id}
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+      
+  
+  groups:
+
+    # VF Modules
+    vfmoduleVmmeModule-1:
+      type: org.openecomp.groups.VfModule
+
+      metadata:
+        vfModuleModelName: vMME::module-1
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelUUID: b220ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+
+      properties:
+        vf_module_type: Expansion # set by service designer
+        vf_module_label: vMME Expansion VF Module # set by service designer
+        vf_module_description: vMME expansion VF Module # set by service designer
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 2 # from HEAT
+        volume_group: false # from HEAT / service Designer
+        artifacts: # HEAT Templates
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+      
+      members:
+      - FSB1
+      - FSB2
+      - NCB1
+      - oam_net
+      - vlc2_gtp_net
+      - VLC2
+
+    # VF Modules
+    vfmoduleVmmeModule-2:
+      type: org.openecomp.groups.VfModule
+
+      metadata:
+        vfModuleModelName: vMME::module-2
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelUUID: b220ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+
+      properties:
+        vf_module_type: Expansion # set by service designer
+        vf_module_label: vMME Expansion VF Module # set by service designer
+        vf_module_description: vMME expansion VF Module # set by service designer
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 2 # from HEAT
+        volume_group: false # from HEAT / service Designer
+        artifacts: # HEAT Templates
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+
+      members:
+      - FSB1
+      - FSB2
+      - NCB1
+      - oam_net
+      - vlc2_gtp_net
+      - VLC2
+
+   
+    # HEAT Stacks 
+
+    vmme_small:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/vmme_small.yml
+        description: HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc
+
+      members: [ FSB1, FSB2, NCB1, NCB2, VLC1, VLC2, GPB1, GPB2, Internal1_net, Internal2_net, fsb1_oam, 
+                fsb1_internal1, fsb1_internal2, fsb2_oam, fsb2_internal2, ncb1_internal1, ncb1_internal2,
+                ncb2_internal1, ncb2_internal2, gpb1_internal1, gpb1_internal2, gpb2_internal1,
+                gpb2_internal2, vlc1_oam, vlc1_internal1, vlc1_internal2, vlc1_sctp_a, vlc1_sctp_b, 
+                vlc1_gtp, vlc2_oam, vlc2_internal1, vlc2_internal2, vlc2_sctp_a, vlc2_sctp_b, vlc1_gtp ]
+    
+    vmme_small_create_fsb:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/vmme_small_create_fsb.yml
+        description: server template for vMME
+        
+      members: [ FSB1_volume, FSB2_volume ]
+
+  policies:
+    # Autoscaling policy
+    - mme_autoscale_policy:
+        type: org.openecomp.policy.Autoscaling
+        properties:
+          min_instances: 1
+          max_instances: 4
+          increment: 1
+          factor: cpu_load
+          threshold: 80%
+
+        target: [ vfmoduleVmmeModule-1]
+        
+  
+  substitution_mapping:
+      type: org.openecomp.resource.vf.vmme
+      
+      requirements:
+        - vlc1_gtp_net.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo
+        - vlc2_gtp_net.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo   
+        - vlc1_sctp_a.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo
+        - vlc1_sctp_b.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo              
\ No newline at end of file
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_DupVFUUID.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_DupVFUUID.yml
new file mode 100644
index 0000000..ef95a24
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_DupVFUUID.yml
@@ -0,0 +1,1217 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: VF Template for pseodo vMME 
+
+# metadata of the VF model
+metadata:
+  invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+  UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+  name: vMME_VF
+  description: vMME_VF
+  type: VF
+  category: Application L4+
+  subcategory: Firewall
+  vendor: Ericsson
+
+# imports include all other tosca definitions that are required for this template
+imports:
+  NovaServerGlobalTypes:
+    file: NovaServerGlobalTypesServiceTemplate.yaml
+  
+topology_template:
+
+# inputs are all the HEAT_ENV parameters and also the editable properties of the VF's internal resources (VFCs, connection points and networks)
+  inputs:    
+    fsb1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    fsb1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    fsb1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_FSB1_16ACP03.qcow2
+    fsb1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    fsb2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB002
+    fsb2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    fsb2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_FSB2_16ACP03.qcow2
+    fsb2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      defualt: m4.xlarge4
+    ncb1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    ncb1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    ncb1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_NCB1_16ACP03.qcow2
+    ncb1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    ncb2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    ncb2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    ncb2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_NCB2_16ACP03.qcow2
+    ncb2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    gpb1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    gpb1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    gpb1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_GPB1_16ACP03.qcow2
+    gpb1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    gpb2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    gpb2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    gpb2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_GPB2_16ACP03.qcow2
+    gpb2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    vlc1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    vlc1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    vlc1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_VLC1_16ACP03.qcow2
+    vlc1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    vlc2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    vlc2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    vlc2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_VLC2_16ACP03.qcow2
+    vlc2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    
+    fsb1_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    fsb1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    fsb1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    fsb2_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    fsb2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    fsb2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    
+    ncb1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    ncb1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    ncb2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    ncb2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    gpb1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    gpb1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    gpb2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    gpb2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    vlc1_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc1_gtp_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc1_sctp_a_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc1_sctp_b_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221           
+    vlc1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    vlc1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12  
+    vlc2_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc2_gtp_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc2_sctp_a_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc2_sctp_b_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221           
+    vlc2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    vlc2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12  
+    Internal1_net_dhcp:
+      hidden: false
+      immutable: false
+      type: string
+      default: 'False'
+    Internal1_net_cidr:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.253.0.0/17
+    Internal1_net_gateway_ip:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.253.0.3
+    Internal2_net_dhcp:
+      hidden: false
+      immutable: false
+      type: string
+      default: 'False'
+    Internal2_net_cidr:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.255.0.0/17
+    Internal2_net_gateway_ip:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.255.0.3
+    network_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this Network instance
+    oam_net_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: uuid of oam network
+      default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+
+  node_templates:
+
+    # VFCs / VMs
+    FSB1: # VFC1 / VM1
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        resourceSubcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: fsb1_vfc_instance_name} 
+        vfc_type_tag: {get_input: fsb1_vfc_type_tag} 
+        vfc_description: FSB1
+        vfc_image_name: {get_input: fsb1_vfc_image_name} 
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: fsb1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: fsb1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capabilty:
+          properties:
+            name: high_cpu
+            
+
+    FSB2: # VFC2 / VM2
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        resourceSubcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: fsb2_vfc_instance_name} 
+        vfc_type_tag: {get_input: fsb2_vfc_type_tag} 
+        vfc_description: FSB2
+        vfc_image_name: {get_input: fsb2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: fsb2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: fsb2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    NCB1: # VFC3 / MV3
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        resourceSubcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: ncb1_vfc_instance_name} 
+        vfc_type_tag: {get_input: ncb1_vfc_type_tag} 
+        vfc_description: NCB1
+        vfc_image_name: {get_input: ncb1_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: ncb1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: ncb1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    NCB2: # VFC4 / VM4
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        resourceSubcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: ncb2_vfc_instance_name} 
+        vfc_type_tag: {get_input: ncb2_vfc_type_tag} 
+        vfc_description: NCB2
+        vfc_image_name: {get_input: ncb2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: ncb2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: ncb2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    GPB1: # VFC5 / VM5
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        resourceSubcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: gpb1_vfc_instance_name} 
+        vfc_type_tag: {get_input: gpb1_vfc_type_tag} 
+        vfc_description: GPB1
+        vfc_image_name: {get_input: gpb1_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: gpb1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: gpb1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+    
+    GPB2: # VFC6 / VM6
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        resourceSubcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: gpb2_vfc_instance_name} 
+        vfc_type_tag: {get_input: gpb2_vfc_type_tag} 
+        vfc_description: GPB2
+        vfc_image_name: {get_input: gpb2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: gpb2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: gpb2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    VLC1: # VFC7 / VM7
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        resourceSubcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: vlc1_vfc_instance_name} 
+        vfc_type_tag: {get_input: vlc1_vfc_type_tag} 
+        vfc_description: VLC1
+        vfc_image_name: {get_input: vlc1_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: vlc1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: vlc1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    VLC2: # VFC8 / VM8
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        resourceSubcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: vlc2_vfc_instance_name} 
+        vfc_type_tag: {get_input: vlc2_vfc_type_tag} 
+        vfc_description: VLC2
+        vfc_image_name: {get_input: vlc2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: vlc2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: vlc2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+      
+      
+  # Connection Points
+
+    fsb1_oam: # VFC1 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: fsb1_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb1_internal1: # VFC1 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address:  {get_input: fsb1_internal1_mac_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+        
+    fsb1_internal2: # VFC1 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: fsb1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb2_oam: # VFC2 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: fsb2_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb2_internal1: # VFC2 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: fsb2_internal1_mac_address}  
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb2_internal2: # VFC2 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: fsb2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb1_internal1: # VFC3 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb1_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb1_internal2: # VFC3 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb2_internal1: # VFC4 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb2_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb2_internal2: # VFC4 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb1_internal1: # VFC5 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb1_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb1_internal2: # VFC5 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb2_internal1: # VFC6 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb2_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb2_internal2: # VFC6 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc1_oam: # VFC7 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc1_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc1_internal2: # VFC7 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: vlc1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc1_sctp_a: # VFC7 eca_sctp_a CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_a_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_a_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc1_sctp_b: # VFC7 eca_sctp_b CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_b_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_b_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc1_gtp_net: # VFC7 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc1_gtp_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: gtp_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc2_oam: # VFC8 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc2_internal1: # VFC8 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: vlc2_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc2_internal2: # VFC8 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: vlc2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc2_sctp_a: # VFC8 eca_sctp_a CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_a_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_a_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc2_sctp_b: # VFC8 eca_sctp_b CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_b_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_b_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc2_gtp_net: # VFC8 gtp CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_gtp_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: gtp_net
+              # relationship: tosca.relationships.network.BindsTo
+
+  # Virtual Links (Networks)
+  
+    Internal1_net:
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: Network
+        description: Internal Network
+        type: VL
+        category: Generic
+        subcategory: Infrastructure
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_role: 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        ip_version: 4
+        enable_dhcp: {get_input: Internal1_net_enable_dhcp}
+        cidr: {get_input: Internal1_net_cidr}
+        gateway_ip: {get_input: Internal1_net_gateway_ip}
+     
+    Internal2_net:
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: Network
+        description: Internal Network
+        type: VL
+        category: Generic
+        subcategory: Infrastructure
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_role: 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        ip_version: 4
+        enable_dhcp: {get_input: Internal2_net_enable_dhcp}
+        cidr: {get_input: Internal2_net_cidr}
+        gateway_ip: {get_input: Internal2_net_gateway_ip}
+  
+    
+    oam_net:
+      type: org.openecomp.resource.vl.OAM
+
+      metadata:
+        invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+        version: 2.0
+        name: Mobility OAM Network
+        description: Mobility OAM Network
+        type: VL
+        category: VL
+        vendor: AT&T
+
+      properties:
+        network_type: vIPR_ATM_OAM
+        network_technology: Contrail
+        network_id: {get_input: oam_net_id}
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+      
+  
+  groups:
+
+    # VF Modules
+    vfmoduleVmmeModule-1:
+      type: org.openecomp.groups.VfModule
+
+      metadata:
+        vfModuleModelName: vMME::module-1
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelUUID: b220ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+
+      properties:
+        vf_module_type: Expansion # set by service designer
+        vf_module_label: vMME Expansion VF Module # set by service designer
+        vf_module_description: vMME expansion VF Module # set by service designer
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 2 # from HEAT
+        volume_group: false # from HEAT / service Designer
+        artifacts: # HEAT Templates
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+      
+      members:
+      - FSB1
+      - FSB2
+      - NCB1
+      - NCB2
+      - VLC2
+      - oam_net
+      - vlc2_gtp_net
+      - Internal1_net
+      - fsb1_oam
+      - Internal2_net
+
+   
+    # HEAT Stacks 
+
+    vmme_small:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/vmme_small.yml
+        description: HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc
+
+      members: [ FSB1, FSB2, NCB1, NCB2, VLC1, VLC2, GPB1, GPB2, Internal1_net, Internal2_net, fsb1_oam, 
+                fsb1_internal1, fsb1_internal2, fsb2_oam, fsb2_internal2, ncb1_internal1, ncb1_internal2,
+                ncb2_internal1, ncb2_internal2, gpb1_internal1, gpb1_internal2, gpb2_internal1,
+                gpb2_internal2, vlc1_oam, vlc1_internal1, vlc1_internal2, vlc1_sctp_a, vlc1_sctp_b, 
+                vlc1_gtp, vlc2_oam, vlc2_internal1, vlc2_internal2, vlc2_sctp_a, vlc2_sctp_b, vlc1_gtp ]
+    
+    vmme_small_create_fsb:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/vmme_small_create_fsb.yml
+        description: server template for vMME
+        
+      members: [ FSB1_volume, FSB2_volume ]
+
+  policies:
+    # Autoscaling policy
+    - mme_autoscale_policy:
+        type: org.openecomp.policy.Autoscaling
+        properties:
+          min_instances: 1
+          max_instances: 4
+          increment: 1
+          factor: cpu_load
+          threshold: 80%
+
+        target: [ vfmoduleVmmeModule-1]
+        
+  
+  substitution_mapping:
+      type: org.openecomp.resource.vf.vmme
+      
+      requirements:
+        - vlc1_gtp_net.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo
+        - vlc2_gtp_net.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo   
+        - vlc1_sctp_a.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo
+        - vlc1_sctp_b.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo              
\ No newline at end of file
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_MulComp.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_MulComp.yml
new file mode 100644
index 0000000..62dee77
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_MulComp.yml
@@ -0,0 +1,1218 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: VF Template for pseodo vMME 
+
+# metadata of the VF model
+metadata:
+  invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+  UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+  name: vMME_VF
+  description: vMME_VF
+  type: VF
+  category: Application L4+
+  subcategory: Firewall
+  vendor: Ericsson
+
+# imports include all other tosca definitions that are required for this template
+imports:
+  NovaServerGlobalTypes:
+    file: NovaServerGlobalTypesServiceTemplate.yaml
+  
+topology_template:
+
+# inputs are all the HEAT_ENV parameters and also the editable properties of the VF's internal resources (VFCs, connection points and networks)
+  inputs:    
+    fsb1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    fsb1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    fsb1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_FSB1_16ACP03.qcow2
+    fsb1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    fsb2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB002
+    fsb2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    fsb2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_FSB2_16ACP03.qcow2
+    fsb2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      defualt: m4.xlarge4
+    ncb1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    ncb1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    ncb1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_NCB1_16ACP03.qcow2
+    ncb1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    ncb2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    ncb2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    ncb2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_NCB2_16ACP03.qcow2
+    ncb2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    gpb1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    gpb1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    gpb1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_GPB1_16ACP03.qcow2
+    gpb1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    gpb2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    gpb2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    gpb2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_GPB2_16ACP03.qcow2
+    gpb2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    vlc1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    vlc1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    vlc1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_VLC1_16ACP03.qcow2
+    vlc1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    vlc2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    vlc2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    vlc2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_VLC2_16ACP03.qcow2
+    vlc2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    
+    fsb1_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    fsb1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    fsb1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    fsb2_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    fsb2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    fsb2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    
+    ncb1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    ncb1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    ncb2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    ncb2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    gpb1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    gpb1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    gpb2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    gpb2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    vlc1_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc1_gtp_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc1_sctp_a_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc1_sctp_b_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221           
+    vlc1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    vlc1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12  
+    vlc2_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc2_gtp_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc2_sctp_a_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc2_sctp_b_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221           
+    vlc2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    vlc2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12  
+    Internal1_net_dhcp:
+      hidden: false
+      immutable: false
+      type: string
+      default: 'False'
+    Internal1_net_cidr:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.253.0.0/17
+    Internal1_net_gateway_ip:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.253.0.3
+    Internal2_net_dhcp:
+      hidden: false
+      immutable: false
+      type: string
+      default: 'False'
+    Internal2_net_cidr:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.255.0.0/17
+    Internal2_net_gateway_ip:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.255.0.3
+    network_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this Network instance
+    oam_net_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: uuid of oam network
+      default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+
+  node_templates:
+
+    # VFCs / VMs
+    FSB1: # VFC1 / VM1
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        subcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: fsb1_vfc_instance_name} 
+        vfc_type_tag: {get_input: fsb1_vfc_type_tag} 
+        vfc_description: FSB1
+        vfc_image_name: {get_input: fsb1_vfc_image_name} 
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: fsb1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: fsb1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capabilty:
+          properties:
+            name: high_cpu
+            
+
+    FSB2: # VFC2 / VM2
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        subcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: fsb2_vfc_instance_name} 
+        vfc_type_tag: {get_input: fsb2_vfc_type_tag} 
+        vfc_description: FSB2
+        vfc_image_name: {get_input: fsb2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: fsb2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: fsb2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    NCB1: # VFC3 / MV3
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        subcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: ncb1_vfc_instance_name} 
+        vfc_type_tag: {get_input: ncb1_vfc_type_tag} 
+        vfc_description: NCB1
+        vfc_image_name: {get_input: ncb1_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: ncb1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: ncb1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    NCB2: # VFC4 / VM4
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        subcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: ncb2_vfc_instance_name} 
+        vfc_type_tag: {get_input: ncb2_vfc_type_tag} 
+        vfc_description: NCB2
+        vfc_image_name: {get_input: ncb2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: ncb2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: ncb2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    GPB1: # VFC5 / VM5
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        subcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: gpb1_vfc_instance_name} 
+        vfc_type_tag: {get_input: gpb1_vfc_type_tag} 
+        vfc_description: GPB1
+        vfc_image_name: {get_input: gpb1_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: gpb1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: gpb1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+    
+    GPB2: # VFC6 / VM6
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        subcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: gpb2_vfc_instance_name} 
+        vfc_type_tag: {get_input: gpb2_vfc_type_tag} 
+        vfc_description: GPB2
+        vfc_image_name: {get_input: gpb2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: gpb2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: gpb2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    VLC1: # VFC7 / VM7
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        subcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: vlc1_vfc_instance_name} 
+        vfc_type_tag: {get_input: vlc1_vfc_type_tag} 
+        vfc_description: VLC1
+        vfc_image_name: {get_input: vlc1_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: vlc1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: vlc1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    VLC2: # VFC8 / VM8
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        subcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: vlc2_vfc_instance_name} 
+        vfc_type_tag: {get_input: vlc2_vfc_type_tag} 
+        vfc_description: VLC2
+        vfc_image_name: {get_input: vlc2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: vlc2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: vlc2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+      
+      
+  # Connection Points
+
+    fsb1_oam: # VFC1 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: fsb1_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb1_internal1: # VFC1 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address:  {get_input: fsb1_internal1_mac_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+        
+    fsb1_internal2: # VFC1 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: fsb1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb2_oam: # VFC2 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: fsb2_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb2_internal1: # VFC2 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: fsb2_internal1_mac_address}  
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb2_internal2: # VFC2 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: fsb2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb1_internal1: # VFC3 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb1_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb1_internal2: # VFC3 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb2_internal1: # VFC4 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb2_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb2_internal2: # VFC4 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb1_internal1: # VFC5 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb1_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb1_internal2: # VFC5 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb2_internal1: # VFC6 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb2_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb2_internal2: # VFC6 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc1_oam: # VFC7 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc1_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc1_internal2: # VFC7 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: vlc1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc1_sctp_a: # VFC7 eca_sctp_a CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_a_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_a_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc1_sctp_b: # VFC7 eca_sctp_b CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_b_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_b_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc1_gtp_net: # VFC7 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc1_gtp_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: gtp_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc2_oam: # VFC8 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc2_internal1: # VFC8 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: vlc2_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc2_internal2: # VFC8 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: vlc2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc2_sctp_a: # VFC8 eca_sctp_a CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_a_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_a_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc2_sctp_b: # VFC8 eca_sctp_b CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_b_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_b_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc2_gtp_net: # VFC8 gtp CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_gtp_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: gtp_net
+              # relationship: tosca.relationships.network.BindsTo
+
+  # Virtual Links (Networks)
+  
+    Internal1_net:
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: Network
+        description: Internal Network
+        type: VL
+        category: Generic
+        subcategory: Infrastructure
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_role: 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        ip_version: 4
+        enable_dhcp: {get_input: Internal1_net_enable_dhcp}
+        cidr: {get_input: Internal1_net_cidr}
+        gateway_ip: {get_input: Internal1_net_gateway_ip}
+     
+    Internal2_net:
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: Network
+        description: Internal Network
+        type: VL
+        category: Generic
+        subcategory: Infrastructure
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_role: 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        ip_version: 4
+        enable_dhcp: {get_input: Internal2_net_enable_dhcp}
+        cidr: {get_input: Internal2_net_cidr}
+        gateway_ip: {get_input: Internal2_net_gateway_ip}
+  
+    
+    oam_net:
+      type: org.openecomp.resource.vl.OAM
+
+      metadata:
+        invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+        version: 2.0
+        name: Mobility OAM Network
+        description: Mobility OAM Network
+        type: VL
+        category: VL
+        vendor: AT&T
+
+      properties:
+        network_type: vIPR_ATM_OAM
+        network_technology: Contrail
+        network_id: {get_input: oam_net_id}
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+      
+  
+  groups:
+
+    # VF Modules
+    vfmoduleVmmeModule-1:
+      type: org.openecomp.groups.VfModule
+
+      metadata:
+        vfModuleModelName: vMME::module-1
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelUUID: b220ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+
+      properties:
+        vf_module_type: Expansion # set by service designer
+        vf_module_label: vMME Expansion VF Module # set by service designer
+        vf_module_description: vMME expansion VF Module # set by service designer
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 2 # from HEAT
+        volume_group: false # from HEAT / service Designer
+        artifacts: # HEAT Templates
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+      
+      members:
+      - FSB1
+      - FSB2
+      - NCB1
+      - NCB2
+      - VLC2
+      - oam_net
+      - vlc2_gtp_net
+      - Internal1_net
+      - fsb1_oam
+      - Internal2_net
+
+
+   
+    # HEAT Stacks 
+
+    vmme_small:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/vmme_small.yml
+        description: HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc
+
+      members: [ FSB1, FSB2, NCB1, NCB2, VLC1, VLC2, GPB1, GPB2, Internal1_net, Internal2_net, fsb1_oam, 
+                fsb1_internal1, fsb1_internal2, fsb2_oam, fsb2_internal2, ncb1_internal1, ncb1_internal2,
+                ncb2_internal1, ncb2_internal2, gpb1_internal1, gpb1_internal2, gpb2_internal1,
+                gpb2_internal2, vlc1_oam, vlc1_internal1, vlc1_internal2, vlc1_sctp_a, vlc1_sctp_b, 
+                vlc1_gtp, vlc2_oam, vlc2_internal1, vlc2_internal2, vlc2_sctp_a, vlc2_sctp_b, vlc1_gtp ]
+    
+    vmme_small_create_fsb:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/vmme_small_create_fsb.yml
+        description: server template for vMME
+        
+      members: [ FSB1_volume, FSB2_volume ]
+
+  policies:
+    # Autoscaling policy
+    - mme_autoscale_policy:
+        type: org.openecomp.policy.Autoscaling
+        properties:
+          min_instances: 1
+          max_instances: 4
+          increment: 1
+          factor: cpu_load
+          threshold: 80%
+
+        target: [ vfmoduleVmmeModule-1]
+        
+  
+  substitution_mapping:
+      type: org.openecomp.resource.vf.vmme
+      
+      requirements:
+        - vlc1_gtp_net.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo
+        - vlc2_gtp_net.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo   
+        - vlc1_sctp_a.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo
+        - vlc1_sctp_b.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo              
\ No newline at end of file
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_MulVFVFMod.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_MulVFVFMod.yml
new file mode 100644
index 0000000..cef49ec
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_MulVFVFMod.yml
@@ -0,0 +1,1251 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: VF Template for pseodo vMME 
+
+# metadata of the VF model
+metadata:
+  invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+  UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+  name: vMME_VF
+  description: vMME_VF
+  type: VF
+  category: Application L4+
+  subcategory: Firewall
+  vendor: Ericsson
+
+# imports include all other tosca definitions that are required for this template
+imports:
+  NovaServerGlobalTypes:
+    file: NovaServerGlobalTypesServiceTemplate.yaml
+  
+topology_template:
+
+# inputs are all the HEAT_ENV parameters and also the editable properties of the VF's internal resources (VFCs, connection points and networks)
+  inputs:    
+    fsb1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    fsb1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    fsb1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_FSB1_16ACP03.qcow2
+    fsb1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    fsb2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB002
+    fsb2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    fsb2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_FSB2_16ACP03.qcow2
+    fsb2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      defualt: m4.xlarge4
+    ncb1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    ncb1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    ncb1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_NCB1_16ACP03.qcow2
+    ncb1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    ncb2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    ncb2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    ncb2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_NCB2_16ACP03.qcow2
+    ncb2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    gpb1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    gpb1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    gpb1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_GPB1_16ACP03.qcow2
+    gpb1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    gpb2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    gpb2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    gpb2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_GPB2_16ACP03.qcow2
+    gpb2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    vlc1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    vlc1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    vlc1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_VLC1_16ACP03.qcow2
+    vlc1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    vlc2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    vlc2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    vlc2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_VLC2_16ACP03.qcow2
+    vlc2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    
+    fsb1_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    fsb1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    fsb1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    fsb2_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    fsb2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    fsb2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    
+    ncb1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    ncb1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    ncb2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    ncb2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    gpb1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    gpb1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    gpb2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    gpb2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    vlc1_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc1_gtp_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc1_sctp_a_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc1_sctp_b_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221           
+    vlc1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    vlc1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12  
+    vlc2_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc2_gtp_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc2_sctp_a_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc2_sctp_b_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221           
+    vlc2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    vlc2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12  
+    Internal1_net_dhcp:
+      hidden: false
+      immutable: false
+      type: string
+      default: 'False'
+    Internal1_net_cidr:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.253.0.0/17
+    Internal1_net_gateway_ip:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.253.0.3
+    Internal2_net_dhcp:
+      hidden: false
+      immutable: false
+      type: string
+      default: 'False'
+    Internal2_net_cidr:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.255.0.0/17
+    Internal2_net_gateway_ip:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.255.0.3
+    network_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this Network instance
+    oam_net_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: uuid of oam network
+      default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+
+  node_templates:
+
+    # VFCs / VMs
+    FSB1: # VFC1 / VM1
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        subcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: fsb1_vfc_instance_name} 
+        vfc_type_tag: {get_input: fsb1_vfc_type_tag} 
+        vfc_description: FSB1
+        vfc_image_name: {get_input: fsb1_vfc_image_name} 
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: fsb1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: fsb1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capabilty:
+          properties:
+            name: high_cpu
+            
+
+    FSB2: # VFC2 / VM2
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        subcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: fsb2_vfc_instance_name} 
+        vfc_type_tag: {get_input: fsb2_vfc_type_tag} 
+        vfc_description: FSB2
+        vfc_image_name: {get_input: fsb2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: fsb2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: fsb2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    NCB1: # VFC3 / MV3
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        subcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: ncb1_vfc_instance_name} 
+        vfc_type_tag: {get_input: ncb1_vfc_type_tag} 
+        vfc_description: NCB1
+        vfc_image_name: {get_input: ncb1_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: ncb1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: ncb1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    NCB2: # VFC4 / VM4
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        subcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: ncb2_vfc_instance_name} 
+        vfc_type_tag: {get_input: ncb2_vfc_type_tag} 
+        vfc_description: NCB2
+        vfc_image_name: {get_input: ncb2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: ncb2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: ncb2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    GPB1: # VFC5 / VM5
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        subcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: gpb1_vfc_instance_name} 
+        vfc_type_tag: {get_input: gpb1_vfc_type_tag} 
+        vfc_description: GPB1
+        vfc_image_name: {get_input: gpb1_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: gpb1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: gpb1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+    
+    GPB2: # VFC6 / VM6
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        resourceSubcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: gpb2_vfc_instance_name} 
+        vfc_type_tag: {get_input: gpb2_vfc_type_tag} 
+        vfc_description: GPB2
+        vfc_image_name: {get_input: gpb2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: gpb2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: gpb2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    VLC1: # VFC7 / VM7
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        resourceSubcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: vlc1_vfc_instance_name} 
+        vfc_type_tag: {get_input: vlc1_vfc_type_tag} 
+        vfc_description: VLC1
+        vfc_image_name: {get_input: vlc1_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: vlc1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: vlc1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    VLC2: # VFC8 / VM8
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        resourceSubcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: vlc2_vfc_instance_name} 
+        vfc_type_tag: {get_input: vlc2_vfc_type_tag} 
+        vfc_description: VLC2
+        vfc_image_name: {get_input: vlc2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: vlc2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: vlc2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+      
+      
+  # Connection Points
+
+    fsb1_oam: # VFC1 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: fsb1_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb1_internal1: # VFC1 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address:  {get_input: fsb1_internal1_mac_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+        
+    fsb1_internal2: # VFC1 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: fsb1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb2_oam: # VFC2 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: fsb2_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb2_internal1: # VFC2 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: fsb2_internal1_mac_address}  
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb2_internal2: # VFC2 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: fsb2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb1_internal1: # VFC3 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb1_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb1_internal2: # VFC3 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb2_internal1: # VFC4 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb2_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb2_internal2: # VFC4 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb1_internal1: # VFC5 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb1_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb1_internal2: # VFC5 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb2_internal1: # VFC6 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb2_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb2_internal2: # VFC6 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc1_oam: # VFC7 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc1_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc1_internal2: # VFC7 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: vlc1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc1_sctp_a: # VFC7 eca_sctp_a CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_a_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_a_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc1_sctp_b: # VFC7 eca_sctp_b CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_b_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_b_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc1_gtp_net: # VFC7 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc1_gtp_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: gtp_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc2_oam: # VFC8 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc2_internal1: # VFC8 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: vlc2_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc2_internal2: # VFC8 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: vlc2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc2_sctp_a: # VFC8 eca_sctp_a CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_a_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_a_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc2_sctp_b: # VFC8 eca_sctp_b CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_b_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_b_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc2_gtp_net: # VFC8 gtp CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_gtp_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: gtp_net
+              # relationship: tosca.relationships.network.BindsTo
+
+  # Virtual Links (Networks)
+  
+    Internal1_net:
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: Network
+        description: Internal Network
+        type: VL
+        category: Generic
+        subcategory: Infrastructure
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_role: 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        ip_version: 4
+        enable_dhcp: {get_input: Internal1_net_enable_dhcp}
+        cidr: {get_input: Internal1_net_cidr}
+        gateway_ip: {get_input: Internal1_net_gateway_ip}
+     
+    Internal2_net:
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: Network
+        description: Internal Network
+        type: VL
+        category: Generic
+        subcategory: Infrastructure
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_role: 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        ip_version: 4
+        enable_dhcp: {get_input: Internal2_net_enable_dhcp}
+        cidr: {get_input: Internal2_net_cidr}
+        gateway_ip: {get_input: Internal2_net_gateway_ip}
+  
+    
+    oam_net:
+      type: org.openecomp.resource.vl.OAM
+
+      metadata:
+        invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+        version: 2.0
+        name: Mobility OAM Network
+        description: Mobility OAM Network
+        type: VL
+        category: VL
+        vendor: AT&T
+
+      properties:
+        network_type: vIPR_ATM_OAM
+        network_technology: Contrail
+        network_id: {get_input: oam_net_id}
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+      
+  
+  groups:
+
+    # VF Modules
+    vfmoduleVmmeModule-1:
+      type: org.openecomp.groups.VfModule
+
+      metadata:
+        vfModuleModelName: vMME::module-1
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelUUID: b220ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+
+      properties:
+        vf_module_type: Expansion # set by service designer
+        vf_module_label: vMME Expansion VF Module # set by service designer
+        vf_module_description: vMME expansion VF Module # set by service designer
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 2 # from HEAT
+        volume_group: false # from HEAT / service Designer
+        artifacts: # HEAT Templates
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+      
+      members:
+      - FSB1
+      - FSB2
+      - NCB1
+      - NCB2
+      - VLC2
+      - oam_net
+      - vlc2_gtp_net
+      - Internal1_net
+      - fsb1_oam
+      - Internal2_net
+
+    # VF Modules
+    vfmoduleVmmeModule-2:
+      type: org.openecomp.groups.VfModule
+
+      metadata:
+        vfModuleModelName: vMME::module-2
+        vfModuleModelInvariantUUID: ttf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelUUID: tt20ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+
+      properties:
+        vf_module_type: Expansion # set by service designer
+        vf_module_label: vMME Expansion VF Module # set by service designer
+        vf_module_description: vMME expansion VF Module # set by service designer
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 2 # from HEAT
+        volume_group: false # from HEAT / service Designer
+        artifacts: # HEAT Templates
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+
+      members:
+      - FSB1
+      - FSB2
+      - NCB1
+      - NCB2
+      - VLC2
+      - oam_net
+      - vlc2_gtp_net
+      - Internal1_net
+      - fsb1_oam
+      - Internal2_net
+
+
+   
+    # HEAT Stacks 
+
+    vmme_small:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/vmme_small.yml
+        description: HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc
+
+      members: [ FSB1, FSB2, NCB1, NCB2, VLC1, VLC2, GPB1, GPB2, Internal1_net, Internal2_net, fsb1_oam, 
+                fsb1_internal1, fsb1_internal2, fsb2_oam, fsb2_internal2, ncb1_internal1, ncb1_internal2,
+                ncb2_internal1, ncb2_internal2, gpb1_internal1, gpb1_internal2, gpb2_internal1,
+                gpb2_internal2, vlc1_oam, vlc1_internal1, vlc1_internal2, vlc1_sctp_a, vlc1_sctp_b, 
+                vlc1_gtp, vlc2_oam, vlc2_internal1, vlc2_internal2, vlc2_sctp_a, vlc2_sctp_b, vlc1_gtp ]
+    
+    vmme_small_create_fsb:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/vmme_small_create_fsb.yml
+        description: server template for vMME
+        
+      members: [ FSB1_volume, FSB2_volume ]
+
+  policies:
+    # Autoscaling policy
+    - mme_autoscale_policy:
+        type: org.openecomp.policy.Autoscaling
+        properties:
+          min_instances: 1
+          max_instances: 4
+          increment: 1
+          factor: cpu_load
+          threshold: 80%
+
+        target: [ vfmoduleVmmeModule-1]
+        
+  
+  substitution_mapping:
+      type: org.openecomp.resource.vf.vmme
+      
+      requirements:
+        - vlc1_gtp_net.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo
+        - vlc2_gtp_net.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo   
+        - vlc1_sctp_a.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo
+        - vlc1_sctp_b.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo              
\ No newline at end of file
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_NoSystemPropConfigured.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_NoSystemPropConfigured.yml
new file mode 100644
index 0000000..6aee48b
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_NoSystemPropConfigured.yml
@@ -0,0 +1,1299 @@
+--- 
+description: "VF Template for pseodo vMME"
+imports: 
+  NovaServerGlobalTypes: 
+    file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata: 
+  category: "Application L4+"
+  description: vMME_VF
+  invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+  name: vMME_VF
+  subcategory: Firewall
+  type: VF
+  UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+  resourceVendor: Ericsson
+topology_template: 
+  groups: 
+    vfmoduleVmmeModule-1: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      metadata: 
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelName: "vMME::module-1"
+        vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+      properties: 
+        artifacts: 
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+        availability_zone_count: 2
+        contrail_service_instance: true
+        vf_module_description: "vMME expansion VF Module"
+        vf_module_label: "vMME Expansion VF Module"
+        vf_module_type: Expansion
+        volume_group: false
+      type: org.openecomp.groups.VfModule
+    vmme_small: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      properties: 
+        description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+        heat_file: ../Artifacts/vmme_small.yml
+      type: org.openecomp.groups.heat.HeatStack
+    vmme_small_create_fsb: 
+      members: 
+        - FSB1_volume
+        - FSB2_volume
+      properties: 
+        description: "server template for vMME"
+        heat_file: ../Artifacts/vmme_small_create_fsb.yml
+      type: org.openecomp.groups.heat.HeatStack
+  inputs: 
+    Internal1_net_cidr: 
+      default: 169.253.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_gateway_ip: 
+      default: "169.253.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_cidr: 
+      default: 169.255.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_gateway_ip: 
+      default: "169.255.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    fsb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb1_vfc_image_name: 
+      default: MME_FSB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    fsb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    fsb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb2_vfc_flavor: 
+      defualt: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb2_vfc_image_name: 
+      default: MME_FSB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB002
+      description: "VFC instance name"
+      type: string
+    fsb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb1_vfc_image_name: 
+      default: MME_GPB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb2_vfc_image_name: 
+      default: MME_GPB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb1_vfc_image_name: 
+      default: MME_NCB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb2_vfc_image_name: 
+      default: MME_NCB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    network_deployment_node: 
+      description: "The target LCP node for deployment of this Network instance"
+      type: string
+    oam_net_id: 
+      default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+      description: "uuid of oam network"
+      hidden: false
+      immutable: false
+      type: string
+    vlc1_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc1_vfc_image_name: 
+      default: MME_VLC1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    vlc2_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc2_vfc_image_name: 
+      default: MME_VLC2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+  node_templates: 
+    FSB1: 
+      capabilities: 
+        monitoring_capabilty: 
+          properties: 
+            name: high_cpu
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    FSB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    Internal1_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal1_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal1_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal1_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    Internal2_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal2_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal2_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal2_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    NCB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    NCB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc1_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc2_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    fsb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    oam_net: 
+      metadata: 
+        category: VL
+        description: "Mobility OAM Network"
+        invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+        name: "Mobility OAM Network"
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+        resourceVendor: AT&T
+        version: 2.0
+      properties: 
+        flow_pattern: E-LAN
+        layer_protocol: IP
+        network_id: 
+          get_input: oam_net_id
+        network_technology: Contrail
+        network_type: vIPR_ATM_OAM
+        test_access: none
+      type: org.openecomp.resource.vl.OAM
+    vlc1_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+  policies: 
+    - 
+      mme_autoscale_policy: 
+        properties: 
+          factor: cpu_load
+          increment: 1
+          max_instances: 4
+          min_instances: 1
+          threshold: 80%
+        target: 
+          - vfmoduleVmmeModule-1
+        type: org.openecomp.policy.Autoscaling
+  substitution_mapping: 
+    requirements: 
+      - 
+        vlc1_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc2_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_a.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_b.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+    type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_NullFields.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_NullFields.yml
new file mode 100644
index 0000000..25f6310
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_NullFields.yml
@@ -0,0 +1,1218 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: VF Template for pseodo vMME 
+
+# metadata of the VF model
+metadata:
+  invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+  UUID:
+  name: vMME_VF
+  description: vMME_VF
+  type: VF
+  category: Application L4+
+  subcategory: Firewall
+  vendor: Ericsson
+
+# imports include all other tosca definitions that are required for this template
+imports:
+  NovaServerGlobalTypes:
+    file: NovaServerGlobalTypesServiceTemplate.yaml
+  
+topology_template:
+
+# inputs are all the HEAT_ENV parameters and also the editable properties of the VF's internal resources (VFCs, connection points and networks)
+  inputs:    
+    fsb1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    fsb1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    fsb1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_FSB1_16ACP03.qcow2
+    fsb1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    fsb2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB002
+    fsb2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    fsb2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_FSB2_16ACP03.qcow2
+    fsb2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      defualt: m4.xlarge4
+    ncb1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    ncb1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    ncb1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_NCB1_16ACP03.qcow2
+    ncb1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    ncb2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    ncb2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    ncb2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_NCB2_16ACP03.qcow2
+    ncb2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    gpb1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    gpb1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    gpb1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_GPB1_16ACP03.qcow2
+    gpb1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    gpb2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    gpb2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    gpb2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_GPB2_16ACP03.qcow2
+    gpb2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    vlc1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    vlc1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    vlc1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_VLC1_16ACP03.qcow2
+    vlc1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    vlc2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    vlc2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    vlc2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_VLC2_16ACP03.qcow2
+    vlc2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    
+    fsb1_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    fsb1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    fsb1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    fsb2_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    fsb2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    fsb2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    
+    ncb1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    ncb1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    ncb2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    ncb2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    gpb1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    gpb1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    gpb2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    gpb2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    vlc1_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc1_gtp_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc1_sctp_a_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc1_sctp_b_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221           
+    vlc1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    vlc1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12  
+    vlc2_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc2_gtp_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc2_sctp_a_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc2_sctp_b_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221           
+    vlc2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    vlc2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12  
+    Internal1_net_dhcp:
+      hidden: false
+      immutable: false
+      type: string
+      default: 'False'
+    Internal1_net_cidr:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.253.0.0/17
+    Internal1_net_gateway_ip:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.253.0.3
+    Internal2_net_dhcp:
+      hidden: false
+      immutable: false
+      type: string
+      default: 'False'
+    Internal2_net_cidr:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.255.0.0/17
+    Internal2_net_gateway_ip:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.255.0.3
+    network_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this Network instance
+    oam_net_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: uuid of oam network
+      default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+
+  node_templates:
+
+    # VFCs / VMs
+    FSB1: # VFC1 / VM1
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        resourceSubcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: fsb1_vfc_instance_name} 
+        vfc_type_tag: {get_input: fsb1_vfc_type_tag} 
+        vfc_description: FSB1
+        vfc_image_name: {get_input: fsb1_vfc_image_name} 
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: fsb1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: fsb1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capabilty:
+          properties:
+            name: high_cpu
+            
+
+    FSB2: # VFC2 / VM2
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        resourceSubcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: fsb2_vfc_instance_name} 
+        vfc_type_tag: {get_input: fsb2_vfc_type_tag} 
+        vfc_description: FSB2
+        vfc_image_name: {get_input: fsb2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: fsb2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: fsb2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    NCB1: # VFC3 / MV3
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        resourceSubcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: ncb1_vfc_instance_name} 
+        vfc_type_tag: {get_input: ncb1_vfc_type_tag} 
+        vfc_description: NCB1
+        vfc_image_name: {get_input: ncb1_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: ncb1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: ncb1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    NCB2: # VFC4 / VM4
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        resourceSubcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: ncb2_vfc_instance_name} 
+        vfc_type_tag: {get_input: ncb2_vfc_type_tag} 
+        vfc_description: NCB2
+        vfc_image_name: {get_input: ncb2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: ncb2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: ncb2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    GPB1: # VFC5 / VM5
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        resourceSubcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: gpb1_vfc_instance_name} 
+        vfc_type_tag: {get_input: gpb1_vfc_type_tag} 
+        vfc_description: GPB1
+        vfc_image_name: {get_input: gpb1_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: gpb1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: gpb1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+    
+    GPB2: # VFC6 / VM6
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        resourceSubcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: gpb2_vfc_instance_name} 
+        vfc_type_tag: {get_input: gpb2_vfc_type_tag} 
+        vfc_description: GPB2
+        vfc_image_name: {get_input: gpb2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: gpb2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: gpb2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    VLC1: # VFC7 / VM7
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        resourceSubcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: vlc1_vfc_instance_name} 
+        vfc_type_tag: {get_input: vlc1_vfc_type_tag} 
+        vfc_description: VLC1
+        vfc_image_name: {get_input: vlc1_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: vlc1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: vlc1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    VLC2: # VFC8 / VM8
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        resourceSubcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: vlc2_vfc_instance_name} 
+        vfc_type_tag: {get_input: vlc2_vfc_type_tag} 
+        vfc_description: VLC2
+        vfc_image_name: {get_input: vlc2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: vlc2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: vlc2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+      
+      
+  # Connection Points
+
+    fsb1_oam: # VFC1 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: fsb1_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb1_internal1: # VFC1 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address:  {get_input: fsb1_internal1_mac_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+        
+    fsb1_internal2: # VFC1 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: fsb1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb2_oam: # VFC2 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: fsb2_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb2_internal1: # VFC2 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: fsb2_internal1_mac_address}  
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb2_internal2: # VFC2 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: fsb2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb1_internal1: # VFC3 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb1_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb1_internal2: # VFC3 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb2_internal1: # VFC4 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb2_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb2_internal2: # VFC4 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb1_internal1: # VFC5 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb1_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb1_internal2: # VFC5 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb2_internal1: # VFC6 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb2_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb2_internal2: # VFC6 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc1_oam: # VFC7 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc1_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc1_internal2: # VFC7 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: vlc1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc1_sctp_a: # VFC7 eca_sctp_a CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_a_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_a_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc1_sctp_b: # VFC7 eca_sctp_b CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_b_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_b_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc1_gtp_net: # VFC7 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc1_gtp_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: gtp_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc2_oam: # VFC8 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc2_internal1: # VFC8 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: vlc2_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc2_internal2: # VFC8 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: vlc2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc2_sctp_a: # VFC8 eca_sctp_a CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_a_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_a_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc2_sctp_b: # VFC8 eca_sctp_b CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_b_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_b_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc2_gtp_net: # VFC8 gtp CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_gtp_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: gtp_net
+              # relationship: tosca.relationships.network.BindsTo
+
+  # Virtual Links (Networks)
+  
+    Internal1_net:
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: Network
+        description: Internal Network
+        type: VL
+        category: Generic
+        subcategory: Infrastructure
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_role: 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        ip_version: 4
+        enable_dhcp: {get_input: Internal1_net_enable_dhcp}
+        cidr: {get_input: Internal1_net_cidr}
+        gateway_ip: {get_input: Internal1_net_gateway_ip}
+     
+    Internal2_net:
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: Network
+        description: Internal Network
+        type: VL
+        category: Generic
+        subcategory: Infrastructure
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_role: 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        ip_version: 4
+        enable_dhcp: {get_input: Internal2_net_enable_dhcp}
+        cidr: {get_input: Internal2_net_cidr}
+        gateway_ip: {get_input: Internal2_net_gateway_ip}
+  
+    
+    oam_net:
+      type: org.openecomp.resource.vl.OAM
+
+      metadata:
+        invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+        version: 2.0
+        name: Mobility OAM Network
+        description: Mobility OAM Network
+        type: VL
+        category: VL
+        vendor: AT&T
+
+      properties:
+        network_type: vIPR_ATM_OAM
+        network_technology: Contrail
+        network_id: {get_input: oam_net_id}
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+      
+  
+  groups:
+
+    # VF Modules
+    vfmoduleVmmeModule-1:
+      type: org.openecomp.groups.VfModule
+
+      metadata:
+        vfModuleModelName: vMME::module-1
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelUUID: b220ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+
+      properties:
+        vf_module_type: Expansion # set by service designer
+        vf_module_label: vMME Expansion VF Module # set by service designer
+        vf_module_description: vMME expansion VF Module # set by service designer
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 2 # from HEAT
+        volume_group: false # from HEAT / service Designer
+        artifacts: # HEAT Templates
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+      
+      members:
+      - FSB1
+      - FSB2
+      - NCB1
+      - NCB2
+      - VLC2
+      - oam_net
+      - vlc2_gtp_net
+      - Internal1_net
+      - fsb1_oam
+      - Internal2_net
+
+
+   
+    # HEAT Stacks 
+
+    vmme_small:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/vmme_small.yml
+        description: HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc
+
+      members: [ FSB1, FSB2, NCB1, NCB2, VLC1, VLC2, GPB1, GPB2, Internal1_net, Internal2_net, fsb1_oam, 
+                fsb1_internal1, fsb1_internal2, fsb2_oam, fsb2_internal2, ncb1_internal1, ncb1_internal2,
+                ncb2_internal1, ncb2_internal2, gpb1_internal1, gpb1_internal2, gpb2_internal1,
+                gpb2_internal2, vlc1_oam, vlc1_internal1, vlc1_internal2, vlc1_sctp_a, vlc1_sctp_b, 
+                vlc1_gtp, vlc2_oam, vlc2_internal1, vlc2_internal2, vlc2_sctp_a, vlc2_sctp_b, vlc1_gtp ]
+    
+    vmme_small_create_fsb:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/vmme_small_create_fsb.yml
+        description: server template for vMME
+        
+      members: [ FSB1_volume, FSB2_volume ]
+
+  policies:
+    # Autoscaling policy
+    - mme_autoscale_policy:
+        type: org.openecomp.policy.Autoscaling
+        properties:
+          min_instances: 1
+          max_instances: 4
+          increment: 1
+          factor: cpu_load
+          threshold: 80%
+
+        target: [ vfmoduleVmmeModule-1]
+        
+  
+  substitution_mapping:
+      type: org.openecomp.resource.vf.vmme
+      
+      requirements:
+        - vlc1_gtp_net.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo
+        - vlc2_gtp_net.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo   
+        - vlc1_sctp_a.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo
+        - vlc1_sctp_b.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo              
\ No newline at end of file
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_Orphan.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_Orphan.yml
new file mode 100644
index 0000000..652b487
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_Orphan.yml
@@ -0,0 +1,1236 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: VF Template for pseodo vMME 
+
+# metadata of the VF model
+metadata:
+  invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+  UUID: b220ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+  name: vMME_VF
+  description: vMME_VF
+  type: VF
+  category: Application L4+
+  subcategory: Firewall
+  vendor: Ericsson
+
+# imports include all other tosca definitions that are required for this template
+imports:
+  NovaServerGlobalTypes:
+    file: NovaServerGlobalTypesServiceTemplate.yaml
+  
+topology_template:
+
+# inputs are all the HEAT_ENV parameters and also the editable properties of the VF's internal resources (VFCs, connection points and networks)
+  inputs:    
+    fsb1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    fsb1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    fsb1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_FSB1_16ACP03.qcow2
+    fsb1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    fsb2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB002
+    fsb2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    fsb2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_FSB2_16ACP03.qcow2
+    fsb2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      defualt: m4.xlarge4
+    ncb1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    ncb1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    ncb1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_NCB1_16ACP03.qcow2
+    ncb1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    ncb2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    ncb2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    ncb2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_NCB2_16ACP03.qcow2
+    ncb2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    gpb1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    gpb1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    gpb1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_GPB1_16ACP03.qcow2
+    gpb1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    gpb2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    gpb2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    gpb2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_GPB2_16ACP03.qcow2
+    gpb2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    vlc1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    vlc1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    vlc1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_VLC1_16ACP03.qcow2
+    vlc1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    vlc2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    vlc2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    vlc2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_VLC2_16ACP03.qcow2
+    vlc2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    
+    fsb1_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    fsb1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    fsb1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    fsb2_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    fsb2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    fsb2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    
+    ncb1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    ncb1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    ncb2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    ncb2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    gpb1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    gpb1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    gpb2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    gpb2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    vlc1_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc1_gtp_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc1_sctp_a_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc1_sctp_b_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221           
+    vlc1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    vlc1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12  
+    vlc2_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc2_gtp_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc2_sctp_a_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc2_sctp_b_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221           
+    vlc2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    vlc2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12  
+    Internal1_net_dhcp:
+      hidden: false
+      immutable: false
+      type: string
+      default: 'False'
+    Internal1_net_cidr:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.253.0.0/17
+    Internal1_net_gateway_ip:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.253.0.3
+    Internal2_net_dhcp:
+      hidden: false
+      immutable: false
+      type: string
+      default: 'False'
+    Internal2_net_cidr:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.255.0.0/17
+    Internal2_net_gateway_ip:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.255.0.3
+    network_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this Network instance
+    oam_net_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: uuid of oam network
+      default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+
+  node_templates:
+
+    # VFCs / VMs
+    FSB1: # VFC1 / VM1
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        subcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: fsb1_vfc_instance_name} 
+        vfc_type_tag: {get_input: fsb1_vfc_type_tag} 
+        vfc_description: FSB1
+        vfc_image_name: {get_input: fsb1_vfc_image_name} 
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: fsb1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: fsb1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capabilty:
+          properties:
+            name: high_cpu
+            
+
+    FSB2: # VFC2 / VM2
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        subcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: fsb2_vfc_instance_name} 
+        vfc_type_tag: {get_input: fsb2_vfc_type_tag} 
+        vfc_description: FSB2
+        vfc_image_name: {get_input: fsb2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: fsb2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: fsb2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    NCB1: # VFC3 / MV3
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        subcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: ncb1_vfc_instance_name} 
+        vfc_type_tag: {get_input: ncb1_vfc_type_tag} 
+        vfc_description: NCB1
+        vfc_image_name: {get_input: ncb1_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: ncb1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: ncb1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    NCB2: # VFC4 / VM4
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        subcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: ncb2_vfc_instance_name} 
+        vfc_type_tag: {get_input: ncb2_vfc_type_tag} 
+        vfc_description: NCB2
+        vfc_image_name: {get_input: ncb2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: ncb2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: ncb2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    GPB1: # VFC5 / VM5
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        subcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: gpb1_vfc_instance_name} 
+        vfc_type_tag: {get_input: gpb1_vfc_type_tag} 
+        vfc_description: GPB1
+        vfc_image_name: {get_input: gpb1_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: gpb1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: gpb1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+    
+    GPB2: # VFC6 / VM6
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        subcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: gpb2_vfc_instance_name} 
+        vfc_type_tag: {get_input: gpb2_vfc_type_tag} 
+        vfc_description: GPB2
+        vfc_image_name: {get_input: gpb2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: gpb2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: gpb2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    VLC1: # VFC7 / VM7
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        subcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: vlc1_vfc_instance_name} 
+        vfc_type_tag: {get_input: vlc1_vfc_type_tag} 
+        vfc_description: VLC1
+        vfc_image_name: {get_input: vlc1_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: vlc1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: vlc1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    VLC2: # VFC8 / VM8
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        subcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: vlc2_vfc_instance_name} 
+        vfc_type_tag: {get_input: vlc2_vfc_type_tag} 
+        vfc_description: VLC2
+        vfc_image_name: {get_input: vlc2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: vlc2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: vlc2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+      
+      
+  # Connection Points
+
+    fsb1_oam: # VFC1 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: fsb1_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb1_internal1: # VFC1 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address:  {get_input: fsb1_internal1_mac_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+        
+    fsb1_internal2: # VFC1 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: fsb1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb2_oam: # VFC2 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: fsb2_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb2_internal1: # VFC2 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: fsb2_internal1_mac_address}  
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb2_internal2: # VFC2 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: fsb2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb1_internal1: # VFC3 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb1_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb1_internal2: # VFC3 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb2_internal1: # VFC4 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb2_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb2_internal2: # VFC4 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb1_internal1: # VFC5 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb1_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb1_internal2: # VFC5 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb2_internal1: # VFC6 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb2_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb2_internal2: # VFC6 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc1_oam: # VFC7 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc1_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc1_internal2: # VFC7 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: vlc1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc1_sctp_a: # VFC7 eca_sctp_a CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_a_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_a_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc1_sctp_b: # VFC7 eca_sctp_b CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_b_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_b_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc1_gtp_net: # VFC7 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc1_gtp_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: gtp_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc2_oam: # VFC8 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc2_internal1: # VFC8 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: vlc2_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc2_internal2: # VFC8 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: vlc2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc2_sctp_a: # VFC8 eca_sctp_a CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_a_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_a_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc2_sctp_b: # VFC8 eca_sctp_b CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_b_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_b_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc2_gtp_net: # VFC8 gtp CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_gtp_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: gtp_net
+              # relationship: tosca.relationships.network.BindsTo
+
+  # Virtual Links (Networks)
+  
+    Internal1_net:
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: Network
+        description: Internal Network
+        type: VL
+        category: Generic
+        subcategory: Infrastructure
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_role: 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        ip_version: 4
+        enable_dhcp: {get_input: Internal1_net_enable_dhcp}
+        cidr: {get_input: Internal1_net_cidr}
+        gateway_ip: {get_input: Internal1_net_gateway_ip}
+     
+    Internal2_net:
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: Network
+        description: Internal Network
+        type: VL
+        category: Generic
+        subcategory: Infrastructure
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_role: 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        ip_version: 4
+        enable_dhcp: {get_input: Internal2_net_enable_dhcp}
+        cidr: {get_input: Internal2_net_cidr}
+        gateway_ip: {get_input: Internal2_net_gateway_ip}
+  
+    
+    oam_net:
+      type: org.openecomp.resource.vl.OAM
+
+      metadata:
+        invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+        version: 2.0
+        name: Mobility OAM Network
+        description: Mobility OAM Network
+        type: VL
+        category: VL
+        vendor: AT&T
+
+      properties:
+        network_type: vIPR_ATM_OAM
+        network_technology: Contrail
+        network_id: {get_input: oam_net_id}
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+      
+  
+  groups:
+
+    # VF Modules
+    vfmoduleVmmeModule-1:
+      type: org.openecomp.groups.VfModule
+
+      metadata:
+        vfModuleModelName: vMME::module-1
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelUUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+
+      properties:
+        vf_module_type: Expansion # set by service designer
+        vf_module_label: vMME Expansion VF Module # set by service designer
+        vf_module_description: vMME expansion VF Module # set by service designer
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 2 # from HEAT
+        volume_group: false # from HEAT / service Designer
+        artifacts: # HEAT Templates
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+      
+      members: [FSB1, FSB2, NCB1, NCB2, VLC1, VLC2, GPB1, GPB2]
+
+      members:
+      - FSB1
+      - FSB2
+      - NCB1
+
+    vfmoduleVmmeModule-1:
+      type: org.openecomp.groups.VfModule
+
+      metadata:
+        vfModuleModelName: vMME::module-1
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelUUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+
+      properties:
+        vf_module_type: Expansion # set by service designer
+        vf_module_label: vMME Expansion VF Module # set by service designer
+        vf_module_description: vMME expansion VF Module # set by service designer
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 2 # from HEAT
+        volume_group: false # from HEAT / service Designer
+        artifacts: # HEAT Templates
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+
+      members:
+      - FSB1
+      - FSB2
+      - NCB1
+
+    # HEAT Stacks 
+
+    vmme_small:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/vmme_small.yml
+        description: HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc
+
+      members: [ FSB1, FSB2, NCB1, NCB2, VLC1, VLC2, GPB1, GPB2, Internal1_net, Internal2_net, fsb1_oam, 
+                fsb1_internal1, fsb1_internal2, fsb2_oam, fsb2_internal2, ncb1_internal1, ncb1_internal2,
+                ncb2_internal1, ncb2_internal2, gpb1_internal1, gpb1_internal2, gpb2_internal1,
+                gpb2_internal2, vlc1_oam, vlc1_internal1, vlc1_internal2, vlc1_sctp_a, vlc1_sctp_b, 
+                vlc1_gtp, vlc2_oam, vlc2_internal1, vlc2_internal2, vlc2_sctp_a, vlc2_sctp_b, vlc1_gtp ]
+    
+    vmme_small_create_fsb:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/vmme_small_create_fsb.yml
+        description: server template for vMME
+        
+      members: [ FSB1_volume, FSB2_volume ]
+
+  policies:
+    # Autoscaling policy
+    - mme_autoscale_policy:
+        type: org.openecomp.policy.Autoscaling
+        properties:
+          min_instances: 1
+          max_instances: 4
+          increment: 1
+          factor: cpu_load
+          threshold: 80%
+
+        target: [ vfmoduleVmmeModule-1]
+        
+  
+  substitution_mapping:
+      type: org.openecomp.resource.vf.vmme
+      
+      requirements:
+        - vlc1_gtp_net.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo
+        - vlc2_gtp_net.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo   
+        - vlc1_sctp_a.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo
+        - vlc1_sctp_b.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo              
\ No newline at end of file
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_SameWidgets1.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_SameWidgets1.yml
new file mode 100644
index 0000000..8edeb07
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_SameWidgets1.yml
@@ -0,0 +1,1218 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: VF Template for pseodo vMME 
+
+# metadata of the VF model
+metadata:
+  invariantUUID: b8753c59-e2c2-4f86-880d-571d4d9d5d22
+  UUID: b031ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+  name: vMME_VF
+  description: vMME_VF
+  type: VF
+  categry: Application L4+
+  subcategory: Firewall
+  vendor: Ericsson
+
+# imports include all other tosca definitions that are required for this template
+imports:
+  NovaServerGlobalTypes:
+    file: NovaServerGlobalTypesServiceTemplate.yaml
+  
+topology_template:
+
+# inputs are all the HEAT_ENV parameters and also the editable properties of the VF's internal resources (VFCs, connection points and networks)
+  inputs:    
+    fsb1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    fsb1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    fsb1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_FSB1_16ACP03.qcow2
+    fsb1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    fsb2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB002
+    fsb2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    fsb2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_FSB2_16ACP03.qcow2
+    fsb2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      defualt: m4.xlarge4
+    ncb1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    ncb1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    ncb1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_NCB1_16ACP03.qcow2
+    ncb1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    ncb2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    ncb2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    ncb2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_NCB2_16ACP03.qcow2
+    ncb2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    gpb1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    gpb1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    gpb1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_GPB1_16ACP03.qcow2
+    gpb1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    gpb2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    gpb2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    gpb2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_GPB2_16ACP03.qcow2
+    gpb2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    vlc1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    vlc1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    vlc1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_VLC1_16ACP03.qcow2
+    vlc1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    vlc2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    vlc2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    vlc2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_VLC2_16ACP03.qcow2
+    vlc2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    
+    fsb1_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    fsb1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    fsb1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    fsb2_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    fsb2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    fsb2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    
+    ncb1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    ncb1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    ncb2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    ncb2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    gpb1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    gpb1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    gpb2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    gpb2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    vlc1_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc1_gtp_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc1_sctp_a_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc1_sctp_b_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221           
+    vlc1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    vlc1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12  
+    vlc2_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc2_gtp_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc2_sctp_a_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc2_sctp_b_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221           
+    vlc2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    vlc2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12  
+    Internal1_net_dhcp:
+      hidden: false
+      immutable: false
+      type: string
+      default: 'False'
+    Internal1_net_cidr:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.253.0.0/17
+    Internal1_net_gateway_ip:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.253.0.3
+    Internal2_net_dhcp:
+      hidden: false
+      immutable: false
+      type: string
+      default: 'False'
+    Internal2_net_cidr:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.255.0.0/17
+    Internal2_net_gateway_ip:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.255.0.3
+    network_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this Network instance
+    oam_net_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: uuid of oam network
+      default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+
+  node_templates:
+
+    # VFCs / VMs
+    FSB1: # VFC1 / VM1
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        categry: Generic
+        subcategry: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: fsb1_vfc_instance_name} 
+        vfc_type_tag: {get_input: fsb1_vfc_type_tag} 
+        vfc_description: FSB1
+        vfc_image_name: {get_input: fsb1_vfc_image_name} 
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: fsb1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: fsb1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capabilty:
+          properties:
+            name: high_cpu
+            
+
+    FSB2: # VFC2 / VM2
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        categry: Generic
+        subcategry: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: fsb2_vfc_instance_name} 
+        vfc_type_tag: {get_input: fsb2_vfc_type_tag} 
+        vfc_description: FSB2
+        vfc_image_name: {get_input: fsb2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: fsb2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: fsb2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    NCB1: # VFC3 / MV3
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        categry: Generic
+        subcategry: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: ncb1_vfc_instance_name} 
+        vfc_type_tag: {get_input: ncb1_vfc_type_tag} 
+        vfc_description: NCB1
+        vfc_image_name: {get_input: ncb1_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: ncb1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: ncb1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    NCB2: # VFC4 / VM4
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        categry: Generic
+        subcategry: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: ncb2_vfc_instance_name} 
+        vfc_type_tag: {get_input: ncb2_vfc_type_tag} 
+        vfc_description: NCB2
+        vfc_image_name: {get_input: ncb2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: ncb2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: ncb2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    GPB1: # VFC5 / VM5
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        categry: Generic
+        subcategry: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: gpb1_vfc_instance_name} 
+        vfc_type_tag: {get_input: gpb1_vfc_type_tag} 
+        vfc_description: GPB1
+        vfc_image_name: {get_input: gpb1_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: gpb1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: gpb1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+    
+    GPB2: # VFC6 / VM6
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        categry: Generic
+        subcategry: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: gpb2_vfc_instance_name} 
+        vfc_type_tag: {get_input: gpb2_vfc_type_tag} 
+        vfc_description: GPB2
+        vfc_image_name: {get_input: gpb2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: gpb2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: gpb2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    VLC1: # VFC7 / VM7
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        categry: Generic
+        subcategry: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: vlc1_vfc_instance_name} 
+        vfc_type_tag: {get_input: vlc1_vfc_type_tag} 
+        vfc_description: VLC1
+        vfc_image_name: {get_input: vlc1_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: vlc1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: vlc1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    VLC2: # VFC8 / VM8
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        categry: Generic
+        subcategry: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: vlc2_vfc_instance_name} 
+        vfc_type_tag: {get_input: vlc2_vfc_type_tag} 
+        vfc_description: VLC2
+        vfc_image_name: {get_input: vlc2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: vlc2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: vlc2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+      
+      
+  # Connection Points
+
+    fsb1_oam: # VFC1 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: fsb1_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb1_internal1: # VFC1 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address:  {get_input: fsb1_internal1_mac_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+        
+    fsb1_internal2: # VFC1 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: fsb1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb2_oam: # VFC2 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: fsb2_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb2_internal1: # VFC2 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: fsb2_internal1_mac_address}  
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb2_internal2: # VFC2 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: fsb2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb1_internal1: # VFC3 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb1_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb1_internal2: # VFC3 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb2_internal1: # VFC4 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb2_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb2_internal2: # VFC4 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb1_internal1: # VFC5 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb1_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb1_internal2: # VFC5 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb2_internal1: # VFC6 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb2_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb2_internal2: # VFC6 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc1_oam: # VFC7 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc1_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc1_internal2: # VFC7 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: vlc1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc1_sctp_a: # VFC7 eca_sctp_a CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_a_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_a_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc1_sctp_b: # VFC7 eca_sctp_b CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_b_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_b_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc1_gtp_net: # VFC7 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc1_gtp_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: gtp_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc2_oam: # VFC8 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc2_internal1: # VFC8 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: vlc2_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc2_internal2: # VFC8 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: vlc2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc2_sctp_a: # VFC8 eca_sctp_a CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_a_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_a_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc2_sctp_b: # VFC8 eca_sctp_b CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_b_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_b_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc2_gtp_net: # VFC8 gtp CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_gtp_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: gtp_net
+              # relationship: tosca.relationships.network.BindsTo
+
+  # Virtual Links (Networks)
+  
+    Internal1_net:
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: Network
+        description: Internal Network
+        type: VL
+        categry: Generic
+        subcategory: Infrastructure
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_role: 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        ip_version: 4
+        enable_dhcp: {get_input: Internal1_net_enable_dhcp}
+        cidr: {get_input: Internal1_net_cidr}
+        gateway_ip: {get_input: Internal1_net_gateway_ip}
+     
+    Internal2_net:
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: Network
+        description: Internal Network
+        type: VL
+        categry: Generic
+        subcategory: Infrastructure
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_role: 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        ip_version: 4
+        enable_dhcp: {get_input: Internal2_net_enable_dhcp}
+        cidr: {get_input: Internal2_net_cidr}
+        gateway_ip: {get_input: Internal2_net_gateway_ip}
+  
+    
+    oam_net:
+      type: org.openecomp.resource.vl.OAM
+
+      metadata:
+        invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+        version: 2.0
+        name: Mobility OAM Network
+        description: Mobility OAM Network
+        type: VL
+        categry: VL
+        vendor: AT&T
+
+      properties:
+        network_type: vIPR_ATM_OAM
+        network_technology: Contrail
+        network_id: {get_input: oam_net_id}
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+      
+  
+  groups:
+
+    # VF Modules
+    vfmoduleVmmeModule-1:
+      type: org.openecomp.groups.VfModule
+
+      metadata:
+        vfModuleModelName: vMME::module-1
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelUUID: b220ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+
+      properties:
+        vf_module_type: Expansion # set by service designer
+        vf_module_label: vMME Expansion VF Module # set by service designer
+        vf_module_description: vMME expansion VF Module # set by service designer
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 2 # from HEAT
+        volume_group: false # from HEAT / service Designer
+        artifacts: # HEAT Templates
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+      
+      members:
+      - FSB1
+      - FSB2
+      - NCB1
+      - NCB2
+      - VLC2
+      - oam_net
+      - vlc2_gtp_net
+      - Internal1_net
+      - fsb1_oam
+      - Internal2_net
+
+
+   
+    # HEAT Stacks 
+
+    vmme_small:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/vmme_small.yml
+        description: HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc
+
+      members: [ FSB1, FSB2, NCB1, NCB2, VLC1, VLC2, GPB1, GPB2, Internal1_net, Internal2_net, fsb1_oam, 
+                fsb1_internal1, fsb1_internal2, fsb2_oam, fsb2_internal2, ncb1_internal1, ncb1_internal2,
+                ncb2_internal1, ncb2_internal2, gpb1_internal1, gpb1_internal2, gpb2_internal1,
+                gpb2_internal2, vlc1_oam, vlc1_internal1, vlc1_internal2, vlc1_sctp_a, vlc1_sctp_b, 
+                vlc1_gtp, vlc2_oam, vlc2_internal1, vlc2_internal2, vlc2_sctp_a, vlc2_sctp_b, vlc1_gtp ]
+    
+    vmme_small_create_fsb:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/vmme_small_create_fsb.yml
+        description: server template for vMME
+        
+      members: [ FSB1_volume, FSB2_volume ]
+
+  policies:
+    # Autoscaling policy
+    - mme_autoscale_policy:
+        type: org.openecomp.policy.Autoscaling
+        properties:
+          min_instances: 1
+          max_instances: 4
+          increment: 1
+          factor: cpu_load
+          threshold: 80%
+
+        target: [ vfmoduleVmmeModule-1]
+        
+  
+  substitution_mapping:
+      type: org.openecomp.resource.vf.vmme
+      
+      requirements:
+        - vlc1_gtp_net.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo
+        - vlc2_gtp_net.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo   
+        - vlc1_sctp_a.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo
+        - vlc1_sctp_b.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo              
\ No newline at end of file
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_SameWidgets2.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_SameWidgets2.yml
new file mode 100644
index 0000000..cba91b2
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_SameWidgets2.yml
@@ -0,0 +1,1218 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: VF Template for pseodo vMME 
+
+# metadata of the VF model
+metadata:
+  invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+  UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+  name: vMME_VF
+  description: vMME_VF
+  type: VF
+  categry: Application L4+
+  subcategory: Firewall
+  vendor: Ericsson
+
+# imports include all other tosca definitions that are required for this template
+imports:
+  NovaServerGlobalTypes:
+    file: NovaServerGlobalTypesServiceTemplate.yaml
+  
+topology_template:
+
+# inputs are all the HEAT_ENV parameters and also the editable properties of the VF's internal resources (VFCs, connection points and networks)
+  inputs:    
+    fsb1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    fsb1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    fsb1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_FSB1_16ACP03.qcow2
+    fsb1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    fsb2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB002
+    fsb2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    fsb2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_FSB2_16ACP03.qcow2
+    fsb2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      defualt: m4.xlarge4
+    ncb1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    ncb1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    ncb1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_NCB1_16ACP03.qcow2
+    ncb1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    ncb2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    ncb2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    ncb2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_NCB2_16ACP03.qcow2
+    ncb2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    gpb1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    gpb1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    gpb1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_GPB1_16ACP03.qcow2
+    gpb1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    gpb2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    gpb2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    gpb2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_GPB2_16ACP03.qcow2
+    gpb2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    vlc1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    vlc1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    vlc1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_VLC1_16ACP03.qcow2
+    vlc1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    vlc2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    vlc2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    vlc2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_VLC2_16ACP03.qcow2
+    vlc2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    
+    fsb1_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    fsb1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    fsb1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    fsb2_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    fsb2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    fsb2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    
+    ncb1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    ncb1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    ncb2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    ncb2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    gpb1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    gpb1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    gpb2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    gpb2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    vlc1_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc1_gtp_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc1_sctp_a_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc1_sctp_b_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221           
+    vlc1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    vlc1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12  
+    vlc2_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc2_gtp_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc2_sctp_a_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc2_sctp_b_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221           
+    vlc2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    vlc2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12  
+    Internal1_net_dhcp:
+      hidden: false
+      immutable: false
+      type: string
+      default: 'False'
+    Internal1_net_cidr:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.253.0.0/17
+    Internal1_net_gateway_ip:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.253.0.3
+    Internal2_net_dhcp:
+      hidden: false
+      immutable: false
+      type: string
+      default: 'False'
+    Internal2_net_cidr:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.255.0.0/17
+    Internal2_net_gateway_ip:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.255.0.3
+    network_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this Network instance
+    oam_net_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: uuid of oam network
+      default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+
+  node_templates:
+
+    # VFCs / VMs
+    FSB1: # VFC1 / VM1
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        categry: Generic
+        subcategry: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: fsb1_vfc_instance_name} 
+        vfc_type_tag: {get_input: fsb1_vfc_type_tag} 
+        vfc_description: FSB1
+        vfc_image_name: {get_input: fsb1_vfc_image_name} 
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: fsb1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: fsb1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capabilty:
+          properties:
+            name: high_cpu
+            
+
+    FSB2: # VFC2 / VM2
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        categry: Generic
+        subcategry: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: fsb2_vfc_instance_name} 
+        vfc_type_tag: {get_input: fsb2_vfc_type_tag} 
+        vfc_description: FSB2
+        vfc_image_name: {get_input: fsb2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: fsb2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: fsb2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    NCB1: # VFC3 / MV3
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        categry: Generic
+        subcategry: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: ncb1_vfc_instance_name} 
+        vfc_type_tag: {get_input: ncb1_vfc_type_tag} 
+        vfc_description: NCB1
+        vfc_image_name: {get_input: ncb1_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: ncb1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: ncb1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    NCB2: # VFC4 / VM4
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        categry: Generic
+        subcategry: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: ncb2_vfc_instance_name} 
+        vfc_type_tag: {get_input: ncb2_vfc_type_tag} 
+        vfc_description: NCB2
+        vfc_image_name: {get_input: ncb2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: ncb2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: ncb2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    GPB1: # VFC5 / VM5
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        categry: Generic
+        subcategry: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: gpb1_vfc_instance_name} 
+        vfc_type_tag: {get_input: gpb1_vfc_type_tag} 
+        vfc_description: GPB1
+        vfc_image_name: {get_input: gpb1_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: gpb1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: gpb1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+    
+    GPB2: # VFC6 / VM6
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        categry: Generic
+        subcategry: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: gpb2_vfc_instance_name} 
+        vfc_type_tag: {get_input: gpb2_vfc_type_tag} 
+        vfc_description: GPB2
+        vfc_image_name: {get_input: gpb2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: gpb2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: gpb2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    VLC1: # VFC7 / VM7
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        categry: Generic
+        subcategry: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: vlc1_vfc_instance_name} 
+        vfc_type_tag: {get_input: vlc1_vfc_type_tag} 
+        vfc_description: VLC1
+        vfc_image_name: {get_input: vlc1_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: vlc1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: vlc1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    VLC2: # VFC8 / VM8
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        categry: Generic
+        subcategry: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: vlc2_vfc_instance_name} 
+        vfc_type_tag: {get_input: vlc2_vfc_type_tag} 
+        vfc_description: VLC2
+        vfc_image_name: {get_input: vlc2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: vlc2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: vlc2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+      
+      
+  # Connection Points
+
+    fsb1_oam: # VFC1 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: fsb1_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb1_internal1: # VFC1 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address:  {get_input: fsb1_internal1_mac_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+        
+    fsb1_internal2: # VFC1 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: fsb1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb2_oam: # VFC2 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: fsb2_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb2_internal1: # VFC2 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: fsb2_internal1_mac_address}  
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb2_internal2: # VFC2 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: fsb2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb1_internal1: # VFC3 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb1_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb1_internal2: # VFC3 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb2_internal1: # VFC4 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb2_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb2_internal2: # VFC4 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb1_internal1: # VFC5 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb1_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb1_internal2: # VFC5 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb2_internal1: # VFC6 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb2_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb2_internal2: # VFC6 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc1_oam: # VFC7 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc1_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc1_internal2: # VFC7 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: vlc1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc1_sctp_a: # VFC7 eca_sctp_a CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_a_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_a_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc1_sctp_b: # VFC7 eca_sctp_b CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_b_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_b_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc1_gtp_net: # VFC7 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc1_gtp_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: gtp_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc2_oam: # VFC8 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc2_internal1: # VFC8 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: vlc2_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc2_internal2: # VFC8 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: vlc2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc2_sctp_a: # VFC8 eca_sctp_a CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_a_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_a_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc2_sctp_b: # VFC8 eca_sctp_b CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_b_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_b_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc2_gtp_net: # VFC8 gtp CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_gtp_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: gtp_net
+              # relationship: tosca.relationships.network.BindsTo
+
+  # Virtual Links (Networks)
+  
+    Internal1_net:
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: Network
+        description: Internal Network
+        type: VL
+        categry: Generic
+        subcategory: Infrastructure
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_role: 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        ip_version: 4
+        enable_dhcp: {get_input: Internal1_net_enable_dhcp}
+        cidr: {get_input: Internal1_net_cidr}
+        gateway_ip: {get_input: Internal1_net_gateway_ip}
+     
+    Internal2_net:
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: Network
+        description: Internal Network
+        type: VL
+        categry: Generic
+        subcategory: Infrastructure
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_role: 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        ip_version: 4
+        enable_dhcp: {get_input: Internal2_net_enable_dhcp}
+        cidr: {get_input: Internal2_net_cidr}
+        gateway_ip: {get_input: Internal2_net_gateway_ip}
+  
+    
+    oam_net:
+      type: org.openecomp.resource.vl.OAM
+
+      metadata:
+        invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+        version: 2.0
+        name: Mobility OAM Network
+        description: Mobility OAM Network
+        type: VL
+        categry: VL
+        vendor: AT&T
+
+      properties:
+        network_type: vIPR_ATM_OAM
+        network_technology: Contrail
+        network_id: {get_input: oam_net_id}
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+      
+  
+  groups:
+
+    # VF Modules
+    vfmoduleVmmeModule-1:
+      type: org.openecomp.groups.VfModule
+
+      metadata:
+        vfModuleModelName: vMME::module-1
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelUUID: b220ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+
+      properties:
+        vf_module_type: Expansion # set by service designer
+        vf_module_label: vMME Expansion VF Module # set by service designer
+        vf_module_description: vMME expansion VF Module # set by service designer
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 2 # from HEAT
+        volume_group: false # from HEAT / service Designer
+        artifacts: # HEAT Templates
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+      
+      members:
+      - FSB1
+      - FSB2
+      - NCB1
+      - NCB2
+      - VLC2
+      - oam_net
+      - vlc2_gtp_net
+      - Internal1_net
+      - fsb1_oam
+      - Internal2_net
+
+
+   
+    # HEAT Stacks 
+
+    vmme_small:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/vmme_small.yml
+        description: HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc
+
+      members: [ FSB1, FSB2, NCB1, NCB2, VLC1, VLC2, GPB1, GPB2, Internal1_net, Internal2_net, fsb1_oam, 
+                fsb1_internal1, fsb1_internal2, fsb2_oam, fsb2_internal2, ncb1_internal1, ncb1_internal2,
+                ncb2_internal1, ncb2_internal2, gpb1_internal1, gpb1_internal2, gpb2_internal1,
+                gpb2_internal2, vlc1_oam, vlc1_internal1, vlc1_internal2, vlc1_sctp_a, vlc1_sctp_b, 
+                vlc1_gtp, vlc2_oam, vlc2_internal1, vlc2_internal2, vlc2_sctp_a, vlc2_sctp_b, vlc1_gtp ]
+    
+    vmme_small_create_fsb:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/vmme_small_create_fsb.yml
+        description: server template for vMME
+        
+      members: [ FSB1_volume, FSB2_volume ]
+
+  policies:
+    # Autoscaling policy
+    - mme_autoscale_policy:
+        type: org.openecomp.policy.Autoscaling
+        properties:
+          min_instances: 1
+          max_instances: 4
+          increment: 1
+          factor: cpu_load
+          threshold: 80%
+
+        target: [ vfmoduleVmmeModule-1]
+        
+  
+  substitution_mapping:
+      type: org.openecomp.resource.vf.vmme
+      
+      requirements:
+        - vlc1_gtp_net.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo
+        - vlc2_gtp_net.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo   
+        - vlc1_sctp_a.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo
+        - vlc1_sctp_b.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo              
\ No newline at end of file
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_SingleVFVFMod.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_SingleVFVFMod.yml
new file mode 100644
index 0000000..6aee48b
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_SingleVFVFMod.yml
@@ -0,0 +1,1299 @@
+--- 
+description: "VF Template for pseodo vMME"
+imports: 
+  NovaServerGlobalTypes: 
+    file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata: 
+  category: "Application L4+"
+  description: vMME_VF
+  invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+  name: vMME_VF
+  subcategory: Firewall
+  type: VF
+  UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+  resourceVendor: Ericsson
+topology_template: 
+  groups: 
+    vfmoduleVmmeModule-1: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      metadata: 
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelName: "vMME::module-1"
+        vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+      properties: 
+        artifacts: 
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+        availability_zone_count: 2
+        contrail_service_instance: true
+        vf_module_description: "vMME expansion VF Module"
+        vf_module_label: "vMME Expansion VF Module"
+        vf_module_type: Expansion
+        volume_group: false
+      type: org.openecomp.groups.VfModule
+    vmme_small: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      properties: 
+        description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+        heat_file: ../Artifacts/vmme_small.yml
+      type: org.openecomp.groups.heat.HeatStack
+    vmme_small_create_fsb: 
+      members: 
+        - FSB1_volume
+        - FSB2_volume
+      properties: 
+        description: "server template for vMME"
+        heat_file: ../Artifacts/vmme_small_create_fsb.yml
+      type: org.openecomp.groups.heat.HeatStack
+  inputs: 
+    Internal1_net_cidr: 
+      default: 169.253.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_gateway_ip: 
+      default: "169.253.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_cidr: 
+      default: 169.255.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_gateway_ip: 
+      default: "169.255.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    fsb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb1_vfc_image_name: 
+      default: MME_FSB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    fsb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    fsb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb2_vfc_flavor: 
+      defualt: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb2_vfc_image_name: 
+      default: MME_FSB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB002
+      description: "VFC instance name"
+      type: string
+    fsb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb1_vfc_image_name: 
+      default: MME_GPB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb2_vfc_image_name: 
+      default: MME_GPB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb1_vfc_image_name: 
+      default: MME_NCB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb2_vfc_image_name: 
+      default: MME_NCB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    network_deployment_node: 
+      description: "The target LCP node for deployment of this Network instance"
+      type: string
+    oam_net_id: 
+      default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+      description: "uuid of oam network"
+      hidden: false
+      immutable: false
+      type: string
+    vlc1_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc1_vfc_image_name: 
+      default: MME_VLC1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    vlc2_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc2_vfc_image_name: 
+      default: MME_VLC2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+  node_templates: 
+    FSB1: 
+      capabilities: 
+        monitoring_capabilty: 
+          properties: 
+            name: high_cpu
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    FSB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    Internal1_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal1_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal1_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal1_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    Internal2_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal2_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal2_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal2_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    NCB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    NCB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc1_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc2_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    fsb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    oam_net: 
+      metadata: 
+        category: VL
+        description: "Mobility OAM Network"
+        invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+        name: "Mobility OAM Network"
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+        resourceVendor: AT&T
+        version: 2.0
+      properties: 
+        flow_pattern: E-LAN
+        layer_protocol: IP
+        network_id: 
+          get_input: oam_net_id
+        network_technology: Contrail
+        network_type: vIPR_ATM_OAM
+        test_access: none
+      type: org.openecomp.resource.vl.OAM
+    vlc1_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+  policies: 
+    - 
+      mme_autoscale_policy: 
+        properties: 
+          factor: cpu_load
+          increment: 1
+          max_instances: 4
+          min_instances: 1
+          threshold: 80%
+        target: 
+          - vfmoduleVmmeModule-1
+        type: org.openecomp.policy.Autoscaling
+  substitution_mapping: 
+    requirements: 
+      - 
+        vlc1_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc2_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_a.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_b.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+    type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyMandatoryParameterResourceVersion.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyMandatoryParameterResourceVersion.yml
new file mode 100644
index 0000000..63fafc0
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyMandatoryParameterResourceVersion.yml
@@ -0,0 +1,975 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: vMMSC VF Topology Template
+
+metadata:
+  invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+  UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+  name: vMMC VF
+  description: |
+                        Delivers messages composed of text, images, and other media types (for example audio and video)
+                        in an operator's network. It is responsible for storing and handling incoming and outgoing Multimedia
+                        Messages (MMs); therefore, acting as an MMS Relay and MMS Server at the same time.
+  type: VF
+  category: Mobility
+  subCategory: MMC
+  vendor: Nokia
+  vendorVersion: 6.0.2.14
+
+
+ # reference to template definitions
+imports:
+  - tosca_simple_profile_for_ecomp_1_0.yml
+
+topology_template:
+
+   # This section provides the parameters which OPENECOMP is not providing values to during instantiation.
+   # It is expected that node template parameters which are not mapped to the Inputs section recieve value from OPENECOMP
+   # during the orchestration
+
+  inputs:
+
+  node_templates:
+
+    vMMSC: # vMMSC VFC
+      type: org.openecomp.resource.vfc.Generic
+
+      metadata:
+        invariantUUID: 673f8d08-2223-4a97-127c-11ab729d23bc
+        UUID: 2714db52-2116-a3af-1240-a236221ca004
+        version: 1.0
+        name: vMMC VFC
+        description:
+        type: VFC
+        category: Generic
+        subCategory: Generic_VFC
+        vendor: Nokia
+        vendorVersion: 6.0.2.14
+
+      properties:
+        vfc_ecomp_name: true
+        vfc_instance_name: # to be set by OPENECOMP during instantiation
+        vfc_type_tag:  # from HEAT ENV
+        vfc_description: vMMSC VFC
+        vfc_image_name: mmsc-6.0.2_v14.qcow2 # from HEAT / HEAT ENV
+        vfc_availability_zone:
+
+
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: mmsc_flavor # from HEAT ENV
+        scaling:
+          properties:
+            min_instances: 5
+            max_instances: 5
+            initial_instance:
+
+    vNEMS_FE: # vNEMS VFC
+      type: org.openecomp.resource.vfc.Generic
+
+      metadata:
+        invariantUUID: 673f8d08-2223-4a97-127c-11ab729d23bc
+        UUID: 2714db52-2116-a3af-1240-a236221ca004
+        version: 1.0
+        name: vNEMS_FE VFC
+        description: |
+                              Legacy support that makes it possible for subscribers without MMS-enabled phones to receive
+                              multimedia messages (MMs) through a web or WAP interface.
+                              E-mail smart push that lets subscribers send and receive MMs to and from the Internet (MM3 interface).
+        type: VFC
+        category: Generic_VFC
+        subCategory: Generic_VFC
+        vendor: Nokia
+        vendorVersion: 2.1.2.44
+
+      properties:
+        vfc_ecomp_name: true
+        vfc_instance_name: # to be set by OPENECOMP during instantiation
+        vfc_type_tag:  # from HEAT ENV
+        vfc_description: vNEMS_FE VFC
+        vfc_image_name: nems-2.1.2_v44.qcow2 # from HEAT / HEAT ENV
+        vfc_availability_zone:
+
+
+
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: nems_fe_flavor # from HEAT ENV
+        scaling:
+          properties:
+            min_instances: 2 # set by service designer
+            max_instances: 4 # set by service designer
+
+    vNEMS_BE: # vNEMS VFC
+      type: org.openecomp.resource.vfc.Generic
+
+      metadata:
+        invariantUUID: 673f8d08-2223-4a97-127c-11ab729d23bc
+        UUID: 2714db52-2116-a3af-1240-a236221ca004
+        version: 1.0
+        name: vNEMS_BE VFC
+        description: |
+                              Legacy support that makes it possible for subscribers without MMS-enabled phones to receive
+                              multimedia messages (MMs) through a web or WAP interface.
+                              E-mail smart push that lets subscribers send and receive MMs to and from the Internet (MM3 interface).
+        type: VFC
+        category: Generic_VFC
+        subCategory: Generic_VFC
+        vendor: Nokia
+        vendorVersion: 2.1.2.44
+
+      properties:
+        vfc_ecomp_name: true
+        vfc_instance_name: # to be set by OPENECOMP during instantiation
+        vfc_type_tag:  # from HEAT ENV
+        vfc_description: vNEMS_FE VFC
+        vfc_image_name: nems-2.1.2_v44.qcow2 # from HEAT / HEAT ENV
+        vfc_availability_zone:
+
+
+
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: nems_be_flavor # from HEAT ENV
+        scaling:
+          properties:
+            min_instances: 1 # set by service designer
+            max_instances: 2 # set by service designer
+
+    vECA_TRX: # vNEMS VFC
+      type: org.openecomp.resource.vfc.Generic
+
+      metadata:
+        invariantUUID: 673f8d08-2223-4a97-127c-11ab729d23bc
+        UUID: 2714db52-2116-a3af-1240-a236221ca004
+        version: 1.0
+        name: vECA_TRX VFC
+        description: Traffic handling
+        type: VFC
+        category: Generic_VFC
+        subCategory: Generic_VFC
+        vendor: Nokia
+        vendorVersion: 13
+
+      properties:
+        vfc_ecomp_name: true
+        vfc_instance_name: # to be set by OPENECOMP during instantiation
+        vfc_type_tag:  # from HEAT ENV
+        vfc_description: vECA_TRX VFC
+        vfc_image_name: eca-v13-release.qcow2 # from HEAT / HEAT ENV
+        vfc_availability_zone:
+
+
+
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: eca_trx_flavor # from HEAT ENV
+        scaling:
+          properties:
+            min_instances: 20 # set by service designer
+            max_instances: 20 # set by service designer
+
+    vLB: # F5 VFC
+      type: org.openecomp.resource.vfc.Generic
+
+      metadata:
+        invariantUUID: 673f8d08-2223-4a97-127c-11ab729d23bc
+        UUID: 2714db52-2116-a3af-1240-a236221ca004
+        version: 1.0
+        name: F5 LB VFC
+        description: Load Balancer
+        type: VFC
+        category: Generic
+        subCategory: Generic_VFC
+        vendor: F5 Networks
+        vendorVersion: 11.5.3.163
+
+      properties:
+        vfc_ecomp_name: true
+        vfc_instance_name: # to be set by OPENECOMP during instantiation
+        vfc_type_tag:  # from HEAT ENV
+        vfc_description: F5 VFC
+        vfc_image_name: F5-11_5_3-EngHF-34_163.qcow2 # from HEAT / HEAT ENV
+        vfc_availability_zone:
+
+
+
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: bigip_flavor # from HEAT ENV
+        scaling:
+          properties:
+            min_instances: 2
+            max_instances: 2
+
+   #  Internal VF Connection Points (VFCs connection points)
+
+    mmsc_oam: # external OAM CP to mobility OAM network
+      type: org.openecomp.cp.OAM
+
+      metadata:
+        invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+        UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: OAM CP
+        description: OAM CP
+        type: CP
+        category: CP
+        vendor: AT&T
+
+      properties:
+        address_Info:
+          ip_address:  # provided by OPENECOMP (SDNC)
+
+
+
+    mmsc_traffic:
+      type: org.openecomp.cp.CP
+
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+    nems_fe_oam: # external OAM CP to mobility OAM network
+      type: org.openecomp.cp.OAM
+
+      metadata:
+        invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+        UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: OAM CP
+        description: OAM CP
+        type: CP
+        category: CP
+        vendor: AT&T
+
+      properties:
+        address_Info:
+          ip_address:  # provided by OPENECOMP (SDNC)
+
+
+
+    nems_fe_internal:
+      type: org.openecomp.cp.CP
+
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+    nems_fe_imap:
+      type: org.openecomp.cp.CP
+
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+    nems_fe_web:
+      type: org.openecomp.cp.CP
+
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+    nems_fe_traffic:
+      type: org.openecomp.cp.CP
+
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+    nems_be_oam: # external OAM CP to mobility OAM network
+      type: org.openecomp.cp.OAM
+
+      metadata:
+        invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+        UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: OAM CP
+        description: OAM CP
+        type: CP
+        category: CP
+        vendor: AT&T
+      properties:
+        address_Info:
+          ip_address:  # provided by OPENECOMP (SDNC)
+
+
+    nems_be_internal:
+      type: org.openecomp.cp.CP
+
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+    nems_be_imap:
+      type: org.openecomp.cp.CP
+
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+    eca_trx_oam: # external OAM CP to mobility OAM network
+      type: org.openecomp.cp.OAM
+
+      metadata:
+        invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+        UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: OAM CP
+        description: OAM CP
+        type: CP
+        category: CP
+        vendor: AT&T
+
+      properties:
+        address_Info:
+          ip_address:  # provided by OPENECOMP (SDNC)
+
+
+
+    eca_trx_internal:
+      type: org.openecomp.cp.CP
+
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+    eca_trx_traffic:
+      type: org.openecomp.cp.CP
+
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+    lb_ha:
+      type: org.openecomp.cp.CP
+
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+    lb_mmsc_traffic:
+      type: org.openecomp.cp.CP
+
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+    lb_nems_traffic:
+      type: org.openecomp.cp.CP
+
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+    lb_nems_web:
+      type: org.openecomp.cp.CP
+
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+    lb_eca_traffic:
+      type: org.openecomp.cp.CP
+
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+    lb_oam: # external OAM CP to mobility OAM network
+      type: org.openecomp.cp.OAM
+
+      metadata:
+        invariantUUID: 553f8d08-2223-4a97-127c-11ab729d1234 # generated by ASDC
+        UUID: ab14db52-2116-a3af-1240-a236221ca82a # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: OAM CP
+        description: OAM CP
+        type: CP
+        category: CP
+        vendor: AT&T
+
+      properties:
+        address_Info:
+          ip_address:  # provided by OPENECOMP (SDNC)
+
+
+
+    lb_dmz_protected: # external CP to mobility DMZ protected network
+      type: org.openecomp.cp.CP
+
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+    lb_core_direct: # external CP to mobility core direct network
+      type: org.openecomp.cp.CP
+
+      metadata:
+        invariantUUID: 55df8d08-2ab3-4a97-127c-11ab729d100a # generated by ASDC
+        UUID: 12b4db52-2116-b5af-1240-a236221ca145 # generated by ASDC
+        version: 1.0 # set by ASDC
+        name: VFC CP
+        description: VFC CP
+        type: CP
+        category: CP
+        vendor: AT&T
+
+      properties:
+        address_info:
+          mac_address: # provided by OPENECOMP (SDNC)
+
+
+
+    # Intra-VF Virtual Links (Networks)
+
+    mmsc_traffic_net:
+      type: org.openecomp.resource.vl.VL
+
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: MMSC traffic network
+        description: mmsc traffic network
+        type: VL
+        category: VL
+        vendor: Nokia
+      properties:
+        network_type: Tenant_Layer_3
+        network_role: Intra-service
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input: network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 169.253.0.0/17 # HEAT ENV
+          gateway_ip: 169.253.0.3 # HEAT ENV
+          dhcp_enabled: false # HEAT ENV
+      capabilities:
+        virtual_linkable:
+          valid_source_types: org.openecomp.resource.cp.CP
+
+    nems_imap_net:
+      type: org.openecomp.resource.vl.VL
+
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: NEMS IMAP network
+        description: NEMS internal IMAP network
+        type: VL
+        category: VL
+        vendor: Nokia
+
+      properties:
+        network_type: Tenant_Layer_3
+        network_role: Intra-service
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input: network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 169.253.0.0/17 # HEAT ENV
+          gateway_ip: 169.253.0.3 # HEAT ENV
+          dhcp_enabled: false # HEAT ENV
+
+      capabilities:
+        virtual_linkable:
+          valid_source_types: org.openecomp.resource.cp.CP
+
+    nems_internal_net:
+      type: org.openecomp.resource.vl.VL
+
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: NEMS internal traffic network
+        description: NEMS internal traffic network
+        type: VL
+        category: VL
+        vendor: Nokia
+
+      properties:
+        network_type: Tenant_Layer_3
+        network_role: Intra-service
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input: network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 169.253.0.0/17 # HEAT ENV
+          gateway_ip: 169.253.0.3 # HEAT ENV
+          dhcp_enabled: false # HEAT ENV
+
+      capabilities:
+        virtual_linkable:
+          valid_source_types: org.openecomp.resource.cp.CP
+
+    nems_web_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: NEMS web network
+        description: nems web nwtwork
+        type: VL
+        category: VL
+        vendor: Nokia
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input: network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 169.255.0.0/17 # HEAT ENV
+          gateway_ip: 169.255.0.3 # HEAT ENV
+          dhcp_enabled: false # HEAT ENV
+      capabilities:
+        virtual_linkable:
+          valid_source_types: org.openecomp.resource.cp.CP
+
+    nems_traffic_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: NEMS traffic network
+        description: NEMS traffic network
+        type: VL
+        category: VL
+        vendor: Nokia
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input: network_deployment_node }
+        contrail_virtual_network:
+          network_name: # provided by OPENECOMP (SDNC)
+          route_targets: 13979:105717
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.0/27 # HEAT ENV
+          gateway_ip: 107.243.37.1 # HEAT ENV
+          start_ip: 107.243.37.3 # HEAT ENV
+          end_ip: 107.243.37.30 # HEAT ENV
+      capabilities:
+        virtual_linkable:
+          valid_source_types: org.openecomp.resource.cp.CP
+
+    eca_traffic_net:
+      type: org.openecomp.resource.vl.VL
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: ECA traffic network
+        description: ECA traffic network
+        type: VL
+        category: VL
+        vendor: Nokia
+
+      properties:
+        network_type: Tenant_Layer_3
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input: network_deployment_node }
+        contrail_virtual_network:
+          network_name: # provided by OPENECOMP (SDNC)
+          route_targets: 13979:105719
+        network_id:
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 107.243.37.32/24 # HEAT ENV
+          gateway_ip: 107.243.37.33 # HEAT ENV
+          start_ip: 107.243.37.35 # HEAT ENV
+          end_ip: 107.243.37.62 # HEAT ENV
+      capabilities:
+        virtual_linkable:
+          valid_source_types: org.openecomp.resource.cp.CP
+
+    eca_internal_net:
+      type: org.openecomp.resource.vl.VL
+
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: ECA internal traffic network
+        description: ECA internal traffic network
+        type: VL
+        category: VL
+        vendor: Nokia
+
+      properties:
+        network_type: Tenant_Layer_3
+        network_role: Intra-service
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input: network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 169.253.0.0/17 # HEAT ENV
+          gateway_ip: 169.253.0.3 # HEAT ENV
+          dhcp_enabled: false # HEAT ENV
+
+      capabilities:
+        virtual_linkable:
+          valid_source_types: org.openecomp.resource.cp.CP # service level network
+
+    lb_ha_net:
+      type: org.openecomp.resource.vl.VL
+
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: LB HA network
+        description: LB sync network
+        type: VL
+        category: VL
+        vendor: Nokia
+      properties:
+        network_type: Tenant_Layer_3
+        network_role: Intra-service
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input: network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        l3_access_parameters:
+          ip_version: 4
+          cidr: 169.253.0.0/17 # HEAT ENV
+          gateway_ip: 169.253.0.3 # HEAT ENV
+          dhcp_enabled: false # HEAT ENV
+      capabilities:
+        virtual_linkable:
+          valid_source_types: org.openecomp.resource.cp.CP
+
+
+  groups:
+
+    # Server Groups for applying placement policy
+    LbGroup:
+      type: tosca.groups.Root
+      members: [vLB]
+
+    mmscGroup:
+      type: tosca.groups.Root
+      members: [vMMSC]
+
+    nemas_feGroup:
+      type: tosca.groups.Root
+      members: [vNEMS_FE]
+
+    eca_trxGroup:
+      type: tosca.groups.Root
+      members: [vECA_TRX]
+
+    # VF Modules
+    VFModuleMMSC_Expansion:
+      type: org.openecomp.groups.VfModule
+
+      metadata:
+        vfModuleModelName: vMMSC::module-1
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelUUID: b020dd1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+
+      properties:
+        vf_module_type: Expansion # set by service designer
+        vf_module_description: vMMSC growth unit # set by service designer
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 1 # from HEAT
+        volume_group: false # from HEAT / service Designer
+        artifacts: # HEAT Templates
+          - 099a6909-290f-4293-a347-736f11b8ff18
+          - 0db84f21-d298-4a4b-b11e-37b92a734066
+
+      members:
+      - vMMSC
+      - vNEMS_FE
+      - vNEMS_BE
+      - vECA_TRX
+      - vLB
+      - mmsc_oam
+      - mmsc_traffic
+      - nems_fe_web
+      - mmsc_traffic_net
+      - nems_imap_net
+      - nems_internal_net
+
+
+  policies:
+     # Autoscaling policy
+    - mmsc_autoscale_policy:
+      type: org.openecomp.policy.Autoscaling
+
+      properties:
+        min_instances: 1
+        max_instances: 4
+        increment: 1
+        factor: bandwidth
+        threshold: 5 Gpbs
+
+      target: [ VFModuleMMSC_Expansion ]
+
+   # Placement policy
+    - mmsc_anti_affinity_placement_policy:
+      type: org.openecomp.policy.Placement
+
+      properties:
+        conatiner_type: compute
+        policy: anti_affinity
+
+      target: [ LbGroup, mmscGroup, nemas_feGroup, eca_trxGroup, eca_oamGroup, cmauiGroup ]
\ No newline at end of file
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyMandatoryParameterServiceVersion.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyMandatoryParameterServiceVersion.yml
new file mode 100644
index 0000000..6aee48b
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyMandatoryParameterServiceVersion.yml
@@ -0,0 +1,1299 @@
+--- 
+description: "VF Template for pseodo vMME"
+imports: 
+  NovaServerGlobalTypes: 
+    file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata: 
+  category: "Application L4+"
+  description: vMME_VF
+  invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+  name: vMME_VF
+  subcategory: Firewall
+  type: VF
+  UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+  resourceVendor: Ericsson
+topology_template: 
+  groups: 
+    vfmoduleVmmeModule-1: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      metadata: 
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelName: "vMME::module-1"
+        vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+      properties: 
+        artifacts: 
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+        availability_zone_count: 2
+        contrail_service_instance: true
+        vf_module_description: "vMME expansion VF Module"
+        vf_module_label: "vMME Expansion VF Module"
+        vf_module_type: Expansion
+        volume_group: false
+      type: org.openecomp.groups.VfModule
+    vmme_small: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      properties: 
+        description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+        heat_file: ../Artifacts/vmme_small.yml
+      type: org.openecomp.groups.heat.HeatStack
+    vmme_small_create_fsb: 
+      members: 
+        - FSB1_volume
+        - FSB2_volume
+      properties: 
+        description: "server template for vMME"
+        heat_file: ../Artifacts/vmme_small_create_fsb.yml
+      type: org.openecomp.groups.heat.HeatStack
+  inputs: 
+    Internal1_net_cidr: 
+      default: 169.253.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_gateway_ip: 
+      default: "169.253.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_cidr: 
+      default: 169.255.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_gateway_ip: 
+      default: "169.255.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    fsb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb1_vfc_image_name: 
+      default: MME_FSB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    fsb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    fsb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb2_vfc_flavor: 
+      defualt: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb2_vfc_image_name: 
+      default: MME_FSB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB002
+      description: "VFC instance name"
+      type: string
+    fsb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb1_vfc_image_name: 
+      default: MME_GPB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb2_vfc_image_name: 
+      default: MME_GPB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb1_vfc_image_name: 
+      default: MME_NCB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb2_vfc_image_name: 
+      default: MME_NCB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    network_deployment_node: 
+      description: "The target LCP node for deployment of this Network instance"
+      type: string
+    oam_net_id: 
+      default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+      description: "uuid of oam network"
+      hidden: false
+      immutable: false
+      type: string
+    vlc1_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc1_vfc_image_name: 
+      default: MME_VLC1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    vlc2_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc2_vfc_image_name: 
+      default: MME_VLC2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+  node_templates: 
+    FSB1: 
+      capabilities: 
+        monitoring_capabilty: 
+          properties: 
+            name: high_cpu
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    FSB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    Internal1_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal1_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal1_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal1_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    Internal2_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal2_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal2_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal2_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    NCB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    NCB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc1_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc2_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    fsb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    oam_net: 
+      metadata: 
+        category: VL
+        description: "Mobility OAM Network"
+        invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+        name: "Mobility OAM Network"
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+        resourceVendor: AT&T
+        version: 2.0
+      properties: 
+        flow_pattern: E-LAN
+        layer_protocol: IP
+        network_id: 
+          get_input: oam_net_id
+        network_technology: Contrail
+        network_type: vIPR_ATM_OAM
+        test_access: none
+      type: org.openecomp.resource.vl.OAM
+    vlc1_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+  policies: 
+    - 
+      mme_autoscale_policy: 
+        properties: 
+          factor: cpu_load
+          increment: 1
+          max_instances: 4
+          min_instances: 1
+          threshold: 80%
+        target: 
+          - vfmoduleVmmeModule-1
+        type: org.openecomp.policy.Autoscaling
+  substitution_mapping: 
+    requirements: 
+      - 
+        vlc1_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc2_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_a.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_b.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+    type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyResourceVersionFormat.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyResourceVersionFormat.yml
new file mode 100644
index 0000000..6aee48b
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyResourceVersionFormat.yml
@@ -0,0 +1,1299 @@
+--- 
+description: "VF Template for pseodo vMME"
+imports: 
+  NovaServerGlobalTypes: 
+    file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata: 
+  category: "Application L4+"
+  description: vMME_VF
+  invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+  name: vMME_VF
+  subcategory: Firewall
+  type: VF
+  UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+  resourceVendor: Ericsson
+topology_template: 
+  groups: 
+    vfmoduleVmmeModule-1: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      metadata: 
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelName: "vMME::module-1"
+        vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+      properties: 
+        artifacts: 
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+        availability_zone_count: 2
+        contrail_service_instance: true
+        vf_module_description: "vMME expansion VF Module"
+        vf_module_label: "vMME Expansion VF Module"
+        vf_module_type: Expansion
+        volume_group: false
+      type: org.openecomp.groups.VfModule
+    vmme_small: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      properties: 
+        description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+        heat_file: ../Artifacts/vmme_small.yml
+      type: org.openecomp.groups.heat.HeatStack
+    vmme_small_create_fsb: 
+      members: 
+        - FSB1_volume
+        - FSB2_volume
+      properties: 
+        description: "server template for vMME"
+        heat_file: ../Artifacts/vmme_small_create_fsb.yml
+      type: org.openecomp.groups.heat.HeatStack
+  inputs: 
+    Internal1_net_cidr: 
+      default: 169.253.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_gateway_ip: 
+      default: "169.253.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_cidr: 
+      default: 169.255.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_gateway_ip: 
+      default: "169.255.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    fsb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb1_vfc_image_name: 
+      default: MME_FSB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    fsb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    fsb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb2_vfc_flavor: 
+      defualt: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb2_vfc_image_name: 
+      default: MME_FSB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB002
+      description: "VFC instance name"
+      type: string
+    fsb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb1_vfc_image_name: 
+      default: MME_GPB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb2_vfc_image_name: 
+      default: MME_GPB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb1_vfc_image_name: 
+      default: MME_NCB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb2_vfc_image_name: 
+      default: MME_NCB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    network_deployment_node: 
+      description: "The target LCP node for deployment of this Network instance"
+      type: string
+    oam_net_id: 
+      default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+      description: "uuid of oam network"
+      hidden: false
+      immutable: false
+      type: string
+    vlc1_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc1_vfc_image_name: 
+      default: MME_VLC1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    vlc2_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc2_vfc_image_name: 
+      default: MME_VLC2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+  node_templates: 
+    FSB1: 
+      capabilities: 
+        monitoring_capabilty: 
+          properties: 
+            name: high_cpu
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    FSB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    Internal1_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal1_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal1_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal1_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    Internal2_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal2_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal2_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal2_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    NCB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    NCB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc1_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc2_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    fsb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    oam_net: 
+      metadata: 
+        category: VL
+        description: "Mobility OAM Network"
+        invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+        name: "Mobility OAM Network"
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+        resourceVendor: AT&T
+        version: 2.0
+      properties: 
+        flow_pattern: E-LAN
+        layer_protocol: IP
+        network_id: 
+          get_input: oam_net_id
+        network_technology: Contrail
+        network_type: vIPR_ATM_OAM
+        test_access: none
+      type: org.openecomp.resource.vl.OAM
+    vlc1_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+  policies: 
+    - 
+      mme_autoscale_policy: 
+        properties: 
+          factor: cpu_load
+          increment: 1
+          max_instances: 4
+          min_instances: 1
+          threshold: 80%
+        target: 
+          - vfmoduleVmmeModule-1
+        type: org.openecomp.policy.Autoscaling
+  substitution_mapping: 
+    requirements: 
+      - 
+        vlc1_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc2_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_a.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_b.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+    type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyServiceVersion.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyServiceVersion.yml
new file mode 100644
index 0000000..6aee48b
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyServiceVersion.yml
@@ -0,0 +1,1299 @@
+--- 
+description: "VF Template for pseodo vMME"
+imports: 
+  NovaServerGlobalTypes: 
+    file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata: 
+  category: "Application L4+"
+  description: vMME_VF
+  invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+  name: vMME_VF
+  subcategory: Firewall
+  type: VF
+  UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+  resourceVendor: Ericsson
+topology_template: 
+  groups: 
+    vfmoduleVmmeModule-1: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      metadata: 
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelName: "vMME::module-1"
+        vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+      properties: 
+        artifacts: 
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+        availability_zone_count: 2
+        contrail_service_instance: true
+        vf_module_description: "vMME expansion VF Module"
+        vf_module_label: "vMME Expansion VF Module"
+        vf_module_type: Expansion
+        volume_group: false
+      type: org.openecomp.groups.VfModule
+    vmme_small: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      properties: 
+        description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+        heat_file: ../Artifacts/vmme_small.yml
+      type: org.openecomp.groups.heat.HeatStack
+    vmme_small_create_fsb: 
+      members: 
+        - FSB1_volume
+        - FSB2_volume
+      properties: 
+        description: "server template for vMME"
+        heat_file: ../Artifacts/vmme_small_create_fsb.yml
+      type: org.openecomp.groups.heat.HeatStack
+  inputs: 
+    Internal1_net_cidr: 
+      default: 169.253.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_gateway_ip: 
+      default: "169.253.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_cidr: 
+      default: 169.255.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_gateway_ip: 
+      default: "169.255.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    fsb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb1_vfc_image_name: 
+      default: MME_FSB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    fsb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    fsb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb2_vfc_flavor: 
+      defualt: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb2_vfc_image_name: 
+      default: MME_FSB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB002
+      description: "VFC instance name"
+      type: string
+    fsb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb1_vfc_image_name: 
+      default: MME_GPB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb2_vfc_image_name: 
+      default: MME_GPB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb1_vfc_image_name: 
+      default: MME_NCB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb2_vfc_image_name: 
+      default: MME_NCB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    network_deployment_node: 
+      description: "The target LCP node for deployment of this Network instance"
+      type: string
+    oam_net_id: 
+      default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+      description: "uuid of oam network"
+      hidden: false
+      immutable: false
+      type: string
+    vlc1_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc1_vfc_image_name: 
+      default: MME_VLC1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    vlc2_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc2_vfc_image_name: 
+      default: MME_VLC2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+  node_templates: 
+    FSB1: 
+      capabilities: 
+        monitoring_capabilty: 
+          properties: 
+            name: high_cpu
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    FSB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    Internal1_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal1_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal1_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal1_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    Internal2_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal2_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal2_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal2_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    NCB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    NCB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc1_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc2_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    fsb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    oam_net: 
+      metadata: 
+        category: VL
+        description: "Mobility OAM Network"
+        invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+        name: "Mobility OAM Network"
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+        resourceVendor: AT&T
+        version: 2.0
+      properties: 
+        flow_pattern: E-LAN
+        layer_protocol: IP
+        network_id: 
+          get_input: oam_net_id
+        network_technology: Contrail
+        network_type: vIPR_ATM_OAM
+        test_access: none
+      type: org.openecomp.resource.vl.OAM
+    vlc1_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+  policies: 
+    - 
+      mme_autoscale_policy: 
+        properties: 
+          factor: cpu_load
+          increment: 1
+          max_instances: 4
+          min_instances: 1
+          threshold: 80%
+        target: 
+          - vfmoduleVmmeModule-1
+        type: org.openecomp.policy.Autoscaling
+  substitution_mapping: 
+    requirements: 
+      - 
+        vlc1_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc2_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_a.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_b.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+    type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyServiceVersionFormat.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyServiceVersionFormat.yml
new file mode 100644
index 0000000..6aee48b
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyServiceVersionFormat.yml
@@ -0,0 +1,1299 @@
+--- 
+description: "VF Template for pseodo vMME"
+imports: 
+  NovaServerGlobalTypes: 
+    file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata: 
+  category: "Application L4+"
+  description: vMME_VF
+  invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+  name: vMME_VF
+  subcategory: Firewall
+  type: VF
+  UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+  resourceVendor: Ericsson
+topology_template: 
+  groups: 
+    vfmoduleVmmeModule-1: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      metadata: 
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelName: "vMME::module-1"
+        vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+      properties: 
+        artifacts: 
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+        availability_zone_count: 2
+        contrail_service_instance: true
+        vf_module_description: "vMME expansion VF Module"
+        vf_module_label: "vMME Expansion VF Module"
+        vf_module_type: Expansion
+        volume_group: false
+      type: org.openecomp.groups.VfModule
+    vmme_small: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      properties: 
+        description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+        heat_file: ../Artifacts/vmme_small.yml
+      type: org.openecomp.groups.heat.HeatStack
+    vmme_small_create_fsb: 
+      members: 
+        - FSB1_volume
+        - FSB2_volume
+      properties: 
+        description: "server template for vMME"
+        heat_file: ../Artifacts/vmme_small_create_fsb.yml
+      type: org.openecomp.groups.heat.HeatStack
+  inputs: 
+    Internal1_net_cidr: 
+      default: 169.253.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_gateway_ip: 
+      default: "169.253.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_cidr: 
+      default: 169.255.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_gateway_ip: 
+      default: "169.255.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    fsb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb1_vfc_image_name: 
+      default: MME_FSB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    fsb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    fsb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb2_vfc_flavor: 
+      defualt: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb2_vfc_image_name: 
+      default: MME_FSB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB002
+      description: "VFC instance name"
+      type: string
+    fsb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb1_vfc_image_name: 
+      default: MME_GPB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb2_vfc_image_name: 
+      default: MME_GPB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb1_vfc_image_name: 
+      default: MME_NCB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb2_vfc_image_name: 
+      default: MME_NCB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    network_deployment_node: 
+      description: "The target LCP node for deployment of this Network instance"
+      type: string
+    oam_net_id: 
+      default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+      description: "uuid of oam network"
+      hidden: false
+      immutable: false
+      type: string
+    vlc1_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc1_vfc_image_name: 
+      default: MME_VLC1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    vlc2_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc2_vfc_image_name: 
+      default: MME_VLC2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+  node_templates: 
+    FSB1: 
+      capabilities: 
+        monitoring_capabilty: 
+          properties: 
+            name: high_cpu
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    FSB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    Internal1_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal1_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal1_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal1_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    Internal2_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal2_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal2_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal2_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    NCB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    NCB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc1_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc2_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    fsb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    oam_net: 
+      metadata: 
+        category: VL
+        description: "Mobility OAM Network"
+        invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+        name: "Mobility OAM Network"
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+        resourceVendor: AT&T
+        version: 2.0
+      properties: 
+        flow_pattern: E-LAN
+        layer_protocol: IP
+        network_id: 
+          get_input: oam_net_id
+        network_technology: Contrail
+        network_type: vIPR_ATM_OAM
+        test_access: none
+      type: org.openecomp.resource.vl.OAM
+    vlc1_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+  policies: 
+    - 
+      mme_autoscale_policy: 
+        properties: 
+          factor: cpu_load
+          increment: 1
+          max_instances: 4
+          min_instances: 1
+          threshold: 80%
+        target: 
+          - vfmoduleVmmeModule-1
+        type: org.openecomp.policy.Autoscaling
+  substitution_mapping: 
+    requirements: 
+      - 
+        vlc1_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc2_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_a.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_b.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+    type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyVFModWithInvalidNo.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyVFModWithInvalidNo.yml
new file mode 100644
index 0000000..9cb7291
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyVFModWithInvalidNo.yml
@@ -0,0 +1,1208 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: VF Template for pseodo vMME 
+
+# metadata of the VF model
+metadata:
+  invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+  UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+  name: vMME_VF
+  description: vMME_VF
+  type: VF
+  category: Application L4+
+  subcategory: Firewall
+  vendor: Ericsson
+
+# imports include all other tosca definitions that are required for this template
+imports:
+  NovaServerGlobalTypes:
+    file: NovaServerGlobalTypesServiceTemplate.yaml
+  
+topology_template:
+
+# inputs are all the HEAT_ENV parameters and also the editable properties of the VF's internal resources (VFCs, connection points and networks)
+  inputs:    
+    fsb1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    fsb1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    fsb1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_FSB1_16ACP03.qcow2
+    fsb1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    fsb2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB002
+    fsb2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    fsb2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_FSB2_16ACP03.qcow2
+    fsb2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      defualt: m4.xlarge4
+    ncb1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    ncb1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    ncb1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_NCB1_16ACP03.qcow2
+    ncb1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    ncb2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    ncb2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    ncb2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_NCB2_16ACP03.qcow2
+    ncb2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    gpb1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    gpb1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    gpb1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_GPB1_16ACP03.qcow2
+    gpb1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    gpb2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    gpb2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    gpb2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_GPB2_16ACP03.qcow2
+    gpb2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    vlc1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    vlc1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    vlc1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_VLC1_16ACP03.qcow2
+    vlc1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    vlc2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    vlc2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    vlc2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_VLC2_16ACP03.qcow2
+    vlc2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    
+    fsb1_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    fsb1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    fsb1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    fsb2_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    fsb2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    fsb2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    
+    ncb1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    ncb1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    ncb2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    ncb2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    gpb1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    gpb1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    gpb2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    gpb2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    vlc1_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc1_gtp_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc1_sctp_a_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc1_sctp_b_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221           
+    vlc1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    vlc1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12  
+    vlc2_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc2_gtp_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc2_sctp_a_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc2_sctp_b_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221           
+    vlc2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    vlc2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12  
+    Internal1_net_dhcp:
+      hidden: false
+      immutable: false
+      type: string
+      default: 'False'
+    Internal1_net_cidr:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.253.0.0/17
+    Internal1_net_gateway_ip:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.253.0.3
+    Internal2_net_dhcp:
+      hidden: false
+      immutable: false
+      type: string
+      default: 'False'
+    Internal2_net_cidr:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.255.0.0/17
+    Internal2_net_gateway_ip:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.255.0.3
+    network_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this Network instance
+    oam_net_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: uuid of oam network
+      default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+
+  node_templates:
+
+    # VFCs / VMs
+    FSB1: # VFC1 / VM1
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        resourceSubcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: fsb1_vfc_instance_name} 
+        vfc_type_tag: {get_input: fsb1_vfc_type_tag} 
+        vfc_description: FSB1
+        vfc_image_name: {get_input: fsb1_vfc_image_name} 
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: fsb1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: fsb1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capabilty:
+          properties:
+            name: high_cpu
+            
+
+    FSB2: # VFC2 / VM2
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        resourceSubcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: fsb2_vfc_instance_name} 
+        vfc_type_tag: {get_input: fsb2_vfc_type_tag} 
+        vfc_description: FSB2
+        vfc_image_name: {get_input: fsb2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: fsb2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: fsb2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    NCB1: # VFC3 / MV3
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        resourceSubcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: ncb1_vfc_instance_name} 
+        vfc_type_tag: {get_input: ncb1_vfc_type_tag} 
+        vfc_description: NCB1
+        vfc_image_name: {get_input: ncb1_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: ncb1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: ncb1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    NCB2: # VFC4 / VM4
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        resourceSubcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: ncb2_vfc_instance_name} 
+        vfc_type_tag: {get_input: ncb2_vfc_type_tag} 
+        vfc_description: NCB2
+        vfc_image_name: {get_input: ncb2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: ncb2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: ncb2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    GPB1: # VFC5 / VM5
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        resourceSubcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: gpb1_vfc_instance_name} 
+        vfc_type_tag: {get_input: gpb1_vfc_type_tag} 
+        vfc_description: GPB1
+        vfc_image_name: {get_input: gpb1_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: gpb1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: gpb1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+    
+    GPB2: # VFC6 / VM6
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        resourceSubcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: gpb2_vfc_instance_name} 
+        vfc_type_tag: {get_input: gpb2_vfc_type_tag} 
+        vfc_description: GPB2
+        vfc_image_name: {get_input: gpb2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: gpb2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: gpb2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    VLC1: # VFC7 / VM7
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        resourceSubcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: vlc1_vfc_instance_name} 
+        vfc_type_tag: {get_input: vlc1_vfc_type_tag} 
+        vfc_description: VLC1
+        vfc_image_name: {get_input: vlc1_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: vlc1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: vlc1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    VLC2: # VFC8 / VM8
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        resourceSubcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: vlc2_vfc_instance_name} 
+        vfc_type_tag: {get_input: vlc2_vfc_type_tag} 
+        vfc_description: VLC2
+        vfc_image_name: {get_input: vlc2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: vlc2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: vlc2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+      
+      
+  # Connection Points
+
+    fsb1_oam: # VFC1 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: fsb1_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb1_internal1: # VFC1 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address:  {get_input: fsb1_internal1_mac_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+        
+    fsb1_internal2: # VFC1 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: fsb1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb2_oam: # VFC2 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: fsb2_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb2_internal1: # VFC2 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: fsb2_internal1_mac_address}  
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb2_internal2: # VFC2 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: fsb2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb1_internal1: # VFC3 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb1_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb1_internal2: # VFC3 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb2_internal1: # VFC4 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb2_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb2_internal2: # VFC4 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb1_internal1: # VFC5 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb1_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb1_internal2: # VFC5 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb2_internal1: # VFC6 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb2_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb2_internal2: # VFC6 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc1_oam: # VFC7 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc1_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc1_internal2: # VFC7 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: vlc1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc1_sctp_a: # VFC7 eca_sctp_a CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_a_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_a_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc1_sctp_b: # VFC7 eca_sctp_b CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_b_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_b_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc1_gtp_net: # VFC7 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc1_gtp_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: gtp_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc2_oam: # VFC8 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc2_internal1: # VFC8 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: vlc2_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc2_internal2: # VFC8 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: vlc2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc2_sctp_a: # VFC8 eca_sctp_a CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_a_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_a_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc2_sctp_b: # VFC8 eca_sctp_b CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_b_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_b_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc2_gtp_net: # VFC8 gtp CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_gtp_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: gtp_net
+              # relationship: tosca.relationships.network.BindsTo
+
+  # Virtual Links (Networks)
+  
+    Internal1_net:
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: Network
+        description: Internal Network
+        type: VL
+        category: Generic
+        subcategory: Infrastructure
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_role: 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        ip_version: 4
+        enable_dhcp: {get_input: Internal1_net_enable_dhcp}
+        cidr: {get_input: Internal1_net_cidr}
+        gateway_ip: {get_input: Internal1_net_gateway_ip}
+     
+    Internal2_net:
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: Network
+        description: Internal Network
+        type: VL
+        category: Generic
+        subcategory: Infrastructure
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_role: 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        ip_version: 4
+        enable_dhcp: {get_input: Internal2_net_enable_dhcp}
+        cidr: {get_input: Internal2_net_cidr}
+        gateway_ip: {get_input: Internal2_net_gateway_ip}
+  
+    
+    oam_net:
+      type: org.openecomp.resource.vl.OAM
+
+      metadata:
+        invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+        version: 2.0
+        name: Mobility OAM Network
+        description: Mobility OAM Network
+        type: VL
+        category: VL
+        vendor: AT&T
+
+      properties:
+        network_type: vIPR_ATM_OAM
+        network_technology: Contrail
+        network_id: {get_input: oam_net_id}
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+      
+  
+  groups:
+
+    # VF Modules
+    vfmoduleVmmeModule-1:
+      type: org.openecomp.groups.VfModule
+
+      metadata:
+        vfModuleModelName: vMME::module-1
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelUUID: b220ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+
+      properties:
+        vf_module_type: Expansion # set by service designer
+        vf_module_label: vMME Expansion VF Module # set by service designer
+        vf_module_description: vMME expansion VF Module # set by service designer
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 2 # from HEAT
+        volume_group: false # from HEAT / service Designer
+        artifacts: # HEAT Templates
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+      
+      members:
+      - INVALID_MEMBER
+
+   
+    # HEAT Stacks 
+
+    vmme_small:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/vmme_small.yml
+        description: HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc
+
+      members: [ FSB1, FSB2, NCB1, NCB2, VLC1, VLC2, GPB1, GPB2, Internal1_net, Internal2_net, fsb1_oam, 
+                fsb1_internal1, fsb1_internal2, fsb2_oam, fsb2_internal2, ncb1_internal1, ncb1_internal2,
+                ncb2_internal1, ncb2_internal2, gpb1_internal1, gpb1_internal2, gpb2_internal1,
+                gpb2_internal2, vlc1_oam, vlc1_internal1, vlc1_internal2, vlc1_sctp_a, vlc1_sctp_b, 
+                vlc1_gtp, vlc2_oam, vlc2_internal1, vlc2_internal2, vlc2_sctp_a, vlc2_sctp_b, vlc1_gtp ]
+    
+    vmme_small_create_fsb:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/vmme_small_create_fsb.yml
+        description: server template for vMME
+        
+      members: [ FSB1_volume, FSB2_volume ]
+
+  policies:
+    # Autoscaling policy
+    - mme_autoscale_policy:
+        type: org.openecomp.policy.Autoscaling
+        properties:
+          min_instances: 1
+          max_instances: 4
+          increment: 1
+          factor: cpu_load
+          threshold: 80%
+
+        target: [ vfmoduleVmmeModule-1]
+        
+  
+  substitution_mapping:
+      type: org.openecomp.resource.vf.vmme
+      
+      requirements:
+        - vlc1_gtp_net.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo
+        - vlc2_gtp_net.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo   
+        - vlc1_sctp_a.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo
+        - vlc1_sctp_b.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo              
\ No newline at end of file
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyVFModWithoutVNFC.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyVFModWithoutVNFC.yml
new file mode 100644
index 0000000..b1784cf
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_VerifyVFModWithoutVNFC.yml
@@ -0,0 +1,1218 @@
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
+
+description: VF Template for pseodo vMME 
+
+# metadata of the VF model
+metadata:
+  invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+  UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+  name: vMME_VF
+  description: vMME_VF
+  type: VF
+  category: Application L4+
+  subcategory: Firewall
+  vendor: Ericsson
+
+# imports include all other tosca definitions that are required for this template
+imports:
+  NovaServerGlobalTypes:
+    file: NovaServerGlobalTypesServiceTemplate.yaml
+  
+topology_template:
+
+# inputs are all the HEAT_ENV parameters and also the editable properties of the VF's internal resources (VFCs, connection points and networks)
+  inputs:    
+    fsb1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    fsb1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    fsb1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_FSB1_16ACP03.qcow2
+    fsb1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    fsb2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB002
+    fsb2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    fsb2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_FSB2_16ACP03.qcow2
+    fsb2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      defualt: m4.xlarge4
+    ncb1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    ncb1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    ncb1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_NCB1_16ACP03.qcow2
+    ncb1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    ncb2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    ncb2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    ncb2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_NCB2_16ACP03.qcow2
+    ncb2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    gpb1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    gpb1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    gpb1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_GPB1_16ACP03.qcow2
+    gpb1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    gpb2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    gpb2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    gpb2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_GPB2_16ACP03.qcow2
+    gpb2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    vlc1_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    vlc1_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    vlc1_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_VLC1_16ACP03.qcow2
+    vlc1_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    vlc2_vfc_instance_name: # from HEAT ENV
+      type: string
+      description: VFC instance name
+      default: ZRDM1MMEX36FSB001
+    vlc2_vfc_type_tag: # from HEAT ENV
+      type: string
+      description: VFC type tag
+    vlc2_vfc_image_name: # from HEAT ENV
+      type: string
+      description: VFC image name
+      default: MME_VLC2_16ACP03.qcow2
+    vlc2_vfc_flavor: # from HEAT ENV
+      type: string
+      description: VFC flavor
+      default: m4.xlarge4
+    
+    fsb1_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    fsb1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    fsb1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    fsb2_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    fsb2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    fsb2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    
+    ncb1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    ncb1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    ncb2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    ncb2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    gpb1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    gpb1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    gpb2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    gpb2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12
+    vlc1_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc1_gtp_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc1_sctp_a_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc1_sctp_b_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221           
+    vlc1_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    vlc1_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12  
+    vlc2_oam_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc2_gtp_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc2_sctp_a_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221
+    vlc2_sctp_b_ip_address: # from HEAT ENV
+      type: string
+      description: OAM ip address
+      default: 107.250.172.221           
+    vlc2_internal1_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:80:37:0E:0B:12
+    vlc2_internal2_mac_address: # from HEAT_ENV
+      type: string
+      description: Internal connection point mac_address
+      default: 00:81:37:0E:0B:12  
+    Internal1_net_dhcp:
+      hidden: false
+      immutable: false
+      type: string
+      default: 'False'
+    Internal1_net_cidr:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.253.0.0/17
+    Internal1_net_gateway_ip:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.253.0.3
+    Internal2_net_dhcp:
+      hidden: false
+      immutable: false
+      type: string
+      default: 'False'
+    Internal2_net_cidr:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.255.0.0/17
+    Internal2_net_gateway_ip:
+      hidden: false
+      immutable: false
+      type: string
+      default: 169.255.0.3
+    network_deployment_node:
+      type: string
+      description: The target LCP node for deployment of this Network instance
+    oam_net_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: uuid of oam network
+      default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+
+  node_templates:
+
+    # VFCs / VMs
+    FSB1: # VFC1 / VM1
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        resourceSubcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: fsb1_vfc_instance_name} 
+        vfc_type_tag: {get_input: fsb1_vfc_type_tag} 
+        vfc_description: FSB1
+        vfc_image_name: {get_input: fsb1_vfc_image_name} 
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: fsb1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: fsb1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capabilty:
+          properties:
+            name: high_cpu
+            
+
+    FSB2: # VFC2 / VM2
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        resourceSubcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: fsb2_vfc_instance_name} 
+        vfc_type_tag: {get_input: fsb2_vfc_type_tag} 
+        vfc_description: FSB2
+        vfc_image_name: {get_input: fsb2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: fsb2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: fsb2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: fsb2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    NCB1: # VFC3 / MV3
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        resourceSubcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: ncb1_vfc_instance_name} 
+        vfc_type_tag: {get_input: ncb1_vfc_type_tag} 
+        vfc_description: NCB1
+        vfc_image_name: {get_input: ncb1_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: ncb1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: ncb1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    NCB2: # VFC4 / VM4
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        resourceSubcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: ncb2_vfc_instance_name} 
+        vfc_type_tag: {get_input: ncb2_vfc_type_tag} 
+        vfc_description: NCB2
+        vfc_image_name: {get_input: ncb2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: ncb2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: ncb2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: ncb2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    GPB1: # VFC5 / VM5
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        resourceSubcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: gpb1_vfc_instance_name} 
+        vfc_type_tag: {get_input: gpb1_vfc_type_tag} 
+        vfc_description: GPB1
+        vfc_image_name: {get_input: gpb1_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: gpb1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: gpb1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+    
+    GPB2: # VFC6 / VM6
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        resourceSubcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: gpb2_vfc_instance_name} 
+        vfc_type_tag: {get_input: gpb2_vfc_type_tag} 
+        vfc_description: GPB2
+        vfc_image_name: {get_input: gpb2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: gpb2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: gpb2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: gpb2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    VLC1: # VFC7 / VM7
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        resourceSubcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: vlc1_vfc_instance_name} 
+        vfc_type_tag: {get_input: vlc1_vfc_type_tag} 
+        vfc_description: VLC1
+        vfc_image_name: {get_input: vlc1_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc1_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc1_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: vlc1_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: vlc1_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+
+    VLC2: # VFC8 / VM8
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+
+      metadata:
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        version: 1.0
+        name: Nova Server
+        description: VFC based on OpenStack Nova Server
+        type: VFC
+        category: Generic
+        resourceSubcategory: Infrastructure
+        vendor: Ericsson
+      properties:
+        vfc_ecomp_name: false
+        vfc_instance_name: {get_input: vlc2_vfc_instance_name} 
+        vfc_type_tag: {get_input: vlc2_vfc_type_tag} 
+        vfc_description: VLC2
+        vfc_image_name: {get_input: vlc2_vfc_image_name} 
+
+      requirements:
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc2_oam
+              relationship: tosca.relationships.network.BindsTo
+         - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: vlc2_internal1
+              relationship: tosca.relationships.network.BindsTo
+         - binding: 
+              capability: tosca.capabilities.network.Bindable
+              node: vlc2_internal2
+              relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        nfv_compute:
+          properties:
+            vfc_flavor: {get_input: vlc2_vfc_flavor}
+        scaling_capability:
+          properties:
+            min_instances: 1
+            max_instances: 1
+            init_instances: 1
+        monitoring_capability:
+          properties:
+            name: cpu_load
+      
+      
+  # Connection Points
+
+    fsb1_oam: # VFC1 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: fsb1_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb1_internal1: # VFC1 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address:  {get_input: fsb1_internal1_mac_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+        
+    fsb1_internal2: # VFC1 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: fsb1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb2_oam: # VFC2 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: fsb2_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb2_internal1: # VFC2 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: fsb2_internal1_mac_address}  
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    fsb2_internal2: # VFC2 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: fsb2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: FSB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb1_internal1: # VFC3 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb1_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb1_internal2: # VFC3 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb2_internal1: # VFC4 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb2_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    ncb2_internal2: # VFC4 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: ncb2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: NCB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb1_internal1: # VFC5 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb1_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb1_internal2: # VFC5 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb2_internal1: # VFC6 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb2_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    gpb2_internal2: # VFC6 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: gpb2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: GPB2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc1_oam: # VFC7 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc1_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc1_internal2: # VFC7 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: vlc1_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc1_sctp_a: # VFC7 eca_sctp_a CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_a_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_a_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc1_sctp_b: # VFC7 eca_sctp_b CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_b_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_b_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc1_gtp_net: # VFC7 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc1_gtp_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC1
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: gtp_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc2_oam: # VFC8 OAM CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_oam_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: oam_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc2_internal1: # VFC8 Internal1 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: vlc2_internal1_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal1_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc2_internal2: # VFC8 Internal2 CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_info:
+          mac_address: {get_input: vlc2_internal2_mac_address} 
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        - link:
+              capability: tosca.capabilities.network.Bindable
+              node: Internal2_net
+              relationship: tosca.relationships.network.BindsTo
+
+    vlc2_sctp_a: # VFC8 eca_sctp_a CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_a_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_a_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc2_sctp_b: # VFC8 eca_sctp_b CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_sctp_b_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: sctp_b_net
+              # relationship: tosca.relationships.network.BindsTo
+
+    vlc2_gtp_net: # VFC8 gtp CP
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        address_Info:
+          ip_address: {get_input: vlc2_gtp_ip_address}
+      requirements:
+        - binding:
+              capability: tosca.capabilities.network.Bindable
+              node: VLC2
+              relationship: tosca.relationships.network.BindsTo
+        # - link:
+              # capability: tosca.capabilities.network.Bindable
+              # node: gtp_net
+              # relationship: tosca.relationships.network.BindsTo
+
+  # Virtual Links (Networks)
+  
+    Internal1_net:
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: Network
+        description: Internal Network
+        type: VL
+        category: Generic
+        subcategory: Infrastructure
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_role: 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        ip_version: 4
+        enable_dhcp: {get_input: Internal1_net_enable_dhcp}
+        cidr: {get_input: Internal1_net_cidr}
+        gateway_ip: {get_input: Internal1_net_gateway_ip}
+     
+    Internal2_net:
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+      metadata:
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        version: 1.0
+        name: Network
+        description: Internal Network
+        type: VL
+        category: Generic
+        subcategory: Infrastructure
+        vendor: AT&T
+      properties:
+        network_type: Tenant_Layer_3
+        network_role: 
+        network_technology: Contrail
+        network_ecomp_name: false
+        network_homing: false
+        network_deployment_node: { get_input : network_deployment_node }
+        contrail_virtual_network:
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+          vn_forwarding_mode: l2
+          vn_shared: false
+          vn_external: false
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+        ip_version: 4
+        enable_dhcp: {get_input: Internal2_net_enable_dhcp}
+        cidr: {get_input: Internal2_net_cidr}
+        gateway_ip: {get_input: Internal2_net_gateway_ip}
+  
+    
+    oam_net:
+      type: org.openecomp.resource.vl.OAM
+
+      metadata:
+        invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+        version: 2.0
+        name: Mobility OAM Network
+        description: Mobility OAM Network
+        type: VL
+        category: VL
+        vendor: AT&T
+
+      properties:
+        network_type: vIPR_ATM_OAM
+        network_technology: Contrail
+        network_id: {get_input: oam_net_id}
+        layer_protocol: IP
+        flow_pattern: E-LAN
+        test_access: none
+      
+  
+  groups:
+
+    # VF Modules
+    vfmoduleVmmeModule-1:
+      type: org.openecomp.groups.VfModule
+
+      metadata:
+        vfModuleModelName: vMME::module-1
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelUUID: b220ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+
+      properties:
+        vf_module_type: Expansion # set by service designer
+        vf_module_label: vMME Expansion VF Module # set by service designer
+        vf_module_description: vMME expansion VF Module # set by service designer
+        contrail_service_instance: true # from HEAT
+        availability_zone_count: 2 # from HEAT
+        volume_group: false # from HEAT / service Designer
+        artifacts: # HEAT Templates
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+      
+      members:
+      - FSB1_NR
+      - FSB2_NR
+      - NCB1_NR
+      - NCB2_NR
+      - VLC2_NR
+      - oam_net
+      - vlc2_gtp_net
+      - Internal1_net
+      - fsb1_oam
+      - Internal2_net
+
+
+   
+    # HEAT Stacks 
+
+    vmme_small:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/vmme_small.yml
+        description: HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc
+
+      members: [ FSB1, FSB2, NCB1, NCB2, VLC1, VLC2, GPB1, GPB2, Internal1_net, Internal2_net, fsb1_oam, 
+                fsb1_internal1, fsb1_internal2, fsb2_oam, fsb2_internal2, ncb1_internal1, ncb1_internal2,
+                ncb2_internal1, ncb2_internal2, gpb1_internal1, gpb1_internal2, gpb2_internal1,
+                gpb2_internal2, vlc1_oam, vlc1_internal1, vlc1_internal2, vlc1_sctp_a, vlc1_sctp_b, 
+                vlc1_gtp, vlc2_oam, vlc2_internal1, vlc2_internal2, vlc2_sctp_a, vlc2_sctp_b, vlc1_gtp ]
+    
+    vmme_small_create_fsb:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/vmme_small_create_fsb.yml
+        description: server template for vMME
+        
+      members: [ FSB1_volume, FSB2_volume ]
+
+  policies:
+    # Autoscaling policy
+    - mme_autoscale_policy:
+        type: org.openecomp.policy.Autoscaling
+        properties:
+          min_instances: 1
+          max_instances: 4
+          increment: 1
+          factor: cpu_load
+          threshold: 80%
+
+        target: [ vfmoduleVmmeModule-1]
+        
+  
+  substitution_mapping:
+      type: org.openecomp.resource.vf.vmme
+      
+      requirements:
+        - vlc1_gtp_net.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo
+        - vlc2_gtp_net.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo   
+        - vlc1_sctp_a.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo
+        - vlc1_sctp_b.link: 
+              capability: tosca.capabilities.network.Linkable
+              relationship: tosca.relationships.network.LinksTo              
\ No newline at end of file
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithDiffVersionOfSameL3Network.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithDiffVersionOfSameL3Network.yml
new file mode 100644
index 0000000..6aee48b
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithDiffVersionOfSameL3Network.yml
@@ -0,0 +1,1299 @@
+--- 
+description: "VF Template for pseodo vMME"
+imports: 
+  NovaServerGlobalTypes: 
+    file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata: 
+  category: "Application L4+"
+  description: vMME_VF
+  invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+  name: vMME_VF
+  subcategory: Firewall
+  type: VF
+  UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+  resourceVendor: Ericsson
+topology_template: 
+  groups: 
+    vfmoduleVmmeModule-1: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      metadata: 
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelName: "vMME::module-1"
+        vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+      properties: 
+        artifacts: 
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+        availability_zone_count: 2
+        contrail_service_instance: true
+        vf_module_description: "vMME expansion VF Module"
+        vf_module_label: "vMME Expansion VF Module"
+        vf_module_type: Expansion
+        volume_group: false
+      type: org.openecomp.groups.VfModule
+    vmme_small: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      properties: 
+        description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+        heat_file: ../Artifacts/vmme_small.yml
+      type: org.openecomp.groups.heat.HeatStack
+    vmme_small_create_fsb: 
+      members: 
+        - FSB1_volume
+        - FSB2_volume
+      properties: 
+        description: "server template for vMME"
+        heat_file: ../Artifacts/vmme_small_create_fsb.yml
+      type: org.openecomp.groups.heat.HeatStack
+  inputs: 
+    Internal1_net_cidr: 
+      default: 169.253.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_gateway_ip: 
+      default: "169.253.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_cidr: 
+      default: 169.255.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_gateway_ip: 
+      default: "169.255.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    fsb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb1_vfc_image_name: 
+      default: MME_FSB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    fsb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    fsb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb2_vfc_flavor: 
+      defualt: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb2_vfc_image_name: 
+      default: MME_FSB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB002
+      description: "VFC instance name"
+      type: string
+    fsb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb1_vfc_image_name: 
+      default: MME_GPB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb2_vfc_image_name: 
+      default: MME_GPB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb1_vfc_image_name: 
+      default: MME_NCB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb2_vfc_image_name: 
+      default: MME_NCB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    network_deployment_node: 
+      description: "The target LCP node for deployment of this Network instance"
+      type: string
+    oam_net_id: 
+      default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+      description: "uuid of oam network"
+      hidden: false
+      immutable: false
+      type: string
+    vlc1_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc1_vfc_image_name: 
+      default: MME_VLC1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    vlc2_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc2_vfc_image_name: 
+      default: MME_VLC2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+  node_templates: 
+    FSB1: 
+      capabilities: 
+        monitoring_capabilty: 
+          properties: 
+            name: high_cpu
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    FSB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    Internal1_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal1_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal1_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal1_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    Internal2_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal2_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal2_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal2_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    NCB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    NCB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc1_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc2_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    fsb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    oam_net: 
+      metadata: 
+        category: VL
+        description: "Mobility OAM Network"
+        invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+        name: "Mobility OAM Network"
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+        resourceVendor: AT&T
+        version: 2.0
+      properties: 
+        flow_pattern: E-LAN
+        layer_protocol: IP
+        network_id: 
+          get_input: oam_net_id
+        network_technology: Contrail
+        network_type: vIPR_ATM_OAM
+        test_access: none
+      type: org.openecomp.resource.vl.OAM
+    vlc1_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+  policies: 
+    - 
+      mme_autoscale_policy: 
+        properties: 
+          factor: cpu_load
+          increment: 1
+          max_instances: 4
+          min_instances: 1
+          threshold: 80%
+        target: 
+          - vfmoduleVmmeModule-1
+        type: org.openecomp.policy.Autoscaling
+  substitution_mapping: 
+    requirements: 
+      - 
+        vlc1_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc2_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_a.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_b.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+    type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithDupL3Network.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithDupL3Network.yml
new file mode 100644
index 0000000..6aee48b
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithDupL3Network.yml
@@ -0,0 +1,1299 @@
+--- 
+description: "VF Template for pseodo vMME"
+imports: 
+  NovaServerGlobalTypes: 
+    file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata: 
+  category: "Application L4+"
+  description: vMME_VF
+  invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+  name: vMME_VF
+  subcategory: Firewall
+  type: VF
+  UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+  resourceVendor: Ericsson
+topology_template: 
+  groups: 
+    vfmoduleVmmeModule-1: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      metadata: 
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelName: "vMME::module-1"
+        vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+      properties: 
+        artifacts: 
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+        availability_zone_count: 2
+        contrail_service_instance: true
+        vf_module_description: "vMME expansion VF Module"
+        vf_module_label: "vMME Expansion VF Module"
+        vf_module_type: Expansion
+        volume_group: false
+      type: org.openecomp.groups.VfModule
+    vmme_small: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      properties: 
+        description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+        heat_file: ../Artifacts/vmme_small.yml
+      type: org.openecomp.groups.heat.HeatStack
+    vmme_small_create_fsb: 
+      members: 
+        - FSB1_volume
+        - FSB2_volume
+      properties: 
+        description: "server template for vMME"
+        heat_file: ../Artifacts/vmme_small_create_fsb.yml
+      type: org.openecomp.groups.heat.HeatStack
+  inputs: 
+    Internal1_net_cidr: 
+      default: 169.253.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_gateway_ip: 
+      default: "169.253.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_cidr: 
+      default: 169.255.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_gateway_ip: 
+      default: "169.255.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    fsb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb1_vfc_image_name: 
+      default: MME_FSB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    fsb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    fsb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb2_vfc_flavor: 
+      defualt: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb2_vfc_image_name: 
+      default: MME_FSB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB002
+      description: "VFC instance name"
+      type: string
+    fsb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb1_vfc_image_name: 
+      default: MME_GPB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb2_vfc_image_name: 
+      default: MME_GPB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb1_vfc_image_name: 
+      default: MME_NCB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb2_vfc_image_name: 
+      default: MME_NCB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    network_deployment_node: 
+      description: "The target LCP node for deployment of this Network instance"
+      type: string
+    oam_net_id: 
+      default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+      description: "uuid of oam network"
+      hidden: false
+      immutable: false
+      type: string
+    vlc1_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc1_vfc_image_name: 
+      default: MME_VLC1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    vlc2_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc2_vfc_image_name: 
+      default: MME_VLC2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+  node_templates: 
+    FSB1: 
+      capabilities: 
+        monitoring_capabilty: 
+          properties: 
+            name: high_cpu
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    FSB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    Internal1_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal1_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal1_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal1_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    Internal2_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal2_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal2_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal2_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    NCB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    NCB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc1_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc2_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    fsb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    oam_net: 
+      metadata: 
+        category: VL
+        description: "Mobility OAM Network"
+        invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+        name: "Mobility OAM Network"
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+        resourceVendor: AT&T
+        version: 2.0
+      properties: 
+        flow_pattern: E-LAN
+        layer_protocol: IP
+        network_id: 
+          get_input: oam_net_id
+        network_technology: Contrail
+        network_type: vIPR_ATM_OAM
+        test_access: none
+      type: org.openecomp.resource.vl.OAM
+    vlc1_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+  policies: 
+    - 
+      mme_autoscale_policy: 
+        properties: 
+          factor: cpu_load
+          increment: 1
+          max_instances: 4
+          min_instances: 1
+          threshold: 80%
+        target: 
+          - vfmoduleVmmeModule-1
+        type: org.openecomp.policy.Autoscaling
+  substitution_mapping: 
+    requirements: 
+      - 
+        vlc1_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc2_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_a.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_b.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+    type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithInvIdGreaterThanSpecifiedLimit.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithInvIdGreaterThanSpecifiedLimit.yml
new file mode 100644
index 0000000..6aee48b
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithInvIdGreaterThanSpecifiedLimit.yml
@@ -0,0 +1,1299 @@
+--- 
+description: "VF Template for pseodo vMME"
+imports: 
+  NovaServerGlobalTypes: 
+    file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata: 
+  category: "Application L4+"
+  description: vMME_VF
+  invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+  name: vMME_VF
+  subcategory: Firewall
+  type: VF
+  UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+  resourceVendor: Ericsson
+topology_template: 
+  groups: 
+    vfmoduleVmmeModule-1: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      metadata: 
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelName: "vMME::module-1"
+        vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+      properties: 
+        artifacts: 
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+        availability_zone_count: 2
+        contrail_service_instance: true
+        vf_module_description: "vMME expansion VF Module"
+        vf_module_label: "vMME Expansion VF Module"
+        vf_module_type: Expansion
+        volume_group: false
+      type: org.openecomp.groups.VfModule
+    vmme_small: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      properties: 
+        description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+        heat_file: ../Artifacts/vmme_small.yml
+      type: org.openecomp.groups.heat.HeatStack
+    vmme_small_create_fsb: 
+      members: 
+        - FSB1_volume
+        - FSB2_volume
+      properties: 
+        description: "server template for vMME"
+        heat_file: ../Artifacts/vmme_small_create_fsb.yml
+      type: org.openecomp.groups.heat.HeatStack
+  inputs: 
+    Internal1_net_cidr: 
+      default: 169.253.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_gateway_ip: 
+      default: "169.253.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_cidr: 
+      default: 169.255.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_gateway_ip: 
+      default: "169.255.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    fsb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb1_vfc_image_name: 
+      default: MME_FSB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    fsb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    fsb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb2_vfc_flavor: 
+      defualt: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb2_vfc_image_name: 
+      default: MME_FSB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB002
+      description: "VFC instance name"
+      type: string
+    fsb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb1_vfc_image_name: 
+      default: MME_GPB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb2_vfc_image_name: 
+      default: MME_GPB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb1_vfc_image_name: 
+      default: MME_NCB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb2_vfc_image_name: 
+      default: MME_NCB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    network_deployment_node: 
+      description: "The target LCP node for deployment of this Network instance"
+      type: string
+    oam_net_id: 
+      default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+      description: "uuid of oam network"
+      hidden: false
+      immutable: false
+      type: string
+    vlc1_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc1_vfc_image_name: 
+      default: MME_VLC1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    vlc2_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc2_vfc_image_name: 
+      default: MME_VLC2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+  node_templates: 
+    FSB1: 
+      capabilities: 
+        monitoring_capabilty: 
+          properties: 
+            name: high_cpu
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    FSB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    Internal1_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal1_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal1_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal1_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    Internal2_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal2_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal2_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal2_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    NCB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    NCB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc1_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc2_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    fsb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    oam_net: 
+      metadata: 
+        category: VL
+        description: "Mobility OAM Network"
+        invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+        name: "Mobility OAM Network"
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+        resourceVendor: AT&T
+        version: 2.0
+      properties: 
+        flow_pattern: E-LAN
+        layer_protocol: IP
+        network_id: 
+          get_input: oam_net_id
+        network_technology: Contrail
+        network_type: vIPR_ATM_OAM
+        test_access: none
+      type: org.openecomp.resource.vl.OAM
+    vlc1_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+  policies: 
+    - 
+      mme_autoscale_policy: 
+        properties: 
+          factor: cpu_load
+          increment: 1
+          max_instances: 4
+          min_instances: 1
+          threshold: 80%
+        target: 
+          - vfmoduleVmmeModule-1
+        type: org.openecomp.policy.Autoscaling
+  substitution_mapping: 
+    requirements: 
+      - 
+        vlc1_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc2_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_a.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_b.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+    type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithInvIdLesserThanSpecifiedLimit.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithInvIdLesserThanSpecifiedLimit.yml
new file mode 100644
index 0000000..6aee48b
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithInvIdLesserThanSpecifiedLimit.yml
@@ -0,0 +1,1299 @@
+--- 
+description: "VF Template for pseodo vMME"
+imports: 
+  NovaServerGlobalTypes: 
+    file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata: 
+  category: "Application L4+"
+  description: vMME_VF
+  invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+  name: vMME_VF
+  subcategory: Firewall
+  type: VF
+  UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+  resourceVendor: Ericsson
+topology_template: 
+  groups: 
+    vfmoduleVmmeModule-1: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      metadata: 
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelName: "vMME::module-1"
+        vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+      properties: 
+        artifacts: 
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+        availability_zone_count: 2
+        contrail_service_instance: true
+        vf_module_description: "vMME expansion VF Module"
+        vf_module_label: "vMME Expansion VF Module"
+        vf_module_type: Expansion
+        volume_group: false
+      type: org.openecomp.groups.VfModule
+    vmme_small: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      properties: 
+        description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+        heat_file: ../Artifacts/vmme_small.yml
+      type: org.openecomp.groups.heat.HeatStack
+    vmme_small_create_fsb: 
+      members: 
+        - FSB1_volume
+        - FSB2_volume
+      properties: 
+        description: "server template for vMME"
+        heat_file: ../Artifacts/vmme_small_create_fsb.yml
+      type: org.openecomp.groups.heat.HeatStack
+  inputs: 
+    Internal1_net_cidr: 
+      default: 169.253.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_gateway_ip: 
+      default: "169.253.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_cidr: 
+      default: 169.255.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_gateway_ip: 
+      default: "169.255.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    fsb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb1_vfc_image_name: 
+      default: MME_FSB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    fsb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    fsb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb2_vfc_flavor: 
+      defualt: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb2_vfc_image_name: 
+      default: MME_FSB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB002
+      description: "VFC instance name"
+      type: string
+    fsb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb1_vfc_image_name: 
+      default: MME_GPB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb2_vfc_image_name: 
+      default: MME_GPB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb1_vfc_image_name: 
+      default: MME_NCB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb2_vfc_image_name: 
+      default: MME_NCB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    network_deployment_node: 
+      description: "The target LCP node for deployment of this Network instance"
+      type: string
+    oam_net_id: 
+      default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+      description: "uuid of oam network"
+      hidden: false
+      immutable: false
+      type: string
+    vlc1_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc1_vfc_image_name: 
+      default: MME_VLC1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    vlc2_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc2_vfc_image_name: 
+      default: MME_VLC2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+  node_templates: 
+    FSB1: 
+      capabilities: 
+        monitoring_capabilty: 
+          properties: 
+            name: high_cpu
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    FSB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    Internal1_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal1_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal1_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal1_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    Internal2_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal2_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal2_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal2_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    NCB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    NCB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc1_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc2_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    fsb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    oam_net: 
+      metadata: 
+        category: VL
+        description: "Mobility OAM Network"
+        invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+        name: "Mobility OAM Network"
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+        resourceVendor: AT&T
+        version: 2.0
+      properties: 
+        flow_pattern: E-LAN
+        layer_protocol: IP
+        network_id: 
+          get_input: oam_net_id
+        network_technology: Contrail
+        network_type: vIPR_ATM_OAM
+        test_access: none
+      type: org.openecomp.resource.vl.OAM
+    vlc1_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+  policies: 
+    - 
+      mme_autoscale_policy: 
+        properties: 
+          factor: cpu_load
+          increment: 1
+          max_instances: 4
+          min_instances: 1
+          threshold: 80%
+        target: 
+          - vfmoduleVmmeModule-1
+        type: org.openecomp.policy.Autoscaling
+  substitution_mapping: 
+    requirements: 
+      - 
+        vlc1_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc2_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_a.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_b.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+    type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithL3Network.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithL3Network.yml
new file mode 100644
index 0000000..6aee48b
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithL3Network.yml
@@ -0,0 +1,1299 @@
+--- 
+description: "VF Template for pseodo vMME"
+imports: 
+  NovaServerGlobalTypes: 
+    file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata: 
+  category: "Application L4+"
+  description: vMME_VF
+  invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+  name: vMME_VF
+  subcategory: Firewall
+  type: VF
+  UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+  resourceVendor: Ericsson
+topology_template: 
+  groups: 
+    vfmoduleVmmeModule-1: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      metadata: 
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelName: "vMME::module-1"
+        vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+      properties: 
+        artifacts: 
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+        availability_zone_count: 2
+        contrail_service_instance: true
+        vf_module_description: "vMME expansion VF Module"
+        vf_module_label: "vMME Expansion VF Module"
+        vf_module_type: Expansion
+        volume_group: false
+      type: org.openecomp.groups.VfModule
+    vmme_small: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      properties: 
+        description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+        heat_file: ../Artifacts/vmme_small.yml
+      type: org.openecomp.groups.heat.HeatStack
+    vmme_small_create_fsb: 
+      members: 
+        - FSB1_volume
+        - FSB2_volume
+      properties: 
+        description: "server template for vMME"
+        heat_file: ../Artifacts/vmme_small_create_fsb.yml
+      type: org.openecomp.groups.heat.HeatStack
+  inputs: 
+    Internal1_net_cidr: 
+      default: 169.253.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_gateway_ip: 
+      default: "169.253.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_cidr: 
+      default: 169.255.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_gateway_ip: 
+      default: "169.255.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    fsb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb1_vfc_image_name: 
+      default: MME_FSB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    fsb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    fsb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb2_vfc_flavor: 
+      defualt: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb2_vfc_image_name: 
+      default: MME_FSB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB002
+      description: "VFC instance name"
+      type: string
+    fsb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb1_vfc_image_name: 
+      default: MME_GPB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb2_vfc_image_name: 
+      default: MME_GPB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb1_vfc_image_name: 
+      default: MME_NCB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb2_vfc_image_name: 
+      default: MME_NCB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    network_deployment_node: 
+      description: "The target LCP node for deployment of this Network instance"
+      type: string
+    oam_net_id: 
+      default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+      description: "uuid of oam network"
+      hidden: false
+      immutable: false
+      type: string
+    vlc1_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc1_vfc_image_name: 
+      default: MME_VLC1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    vlc2_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc2_vfc_image_name: 
+      default: MME_VLC2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+  node_templates: 
+    FSB1: 
+      capabilities: 
+        monitoring_capabilty: 
+          properties: 
+            name: high_cpu
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    FSB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    Internal1_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal1_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal1_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal1_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    Internal2_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal2_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal2_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal2_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    NCB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    NCB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc1_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc2_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    fsb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    oam_net: 
+      metadata: 
+        category: VL
+        description: "Mobility OAM Network"
+        invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+        name: "Mobility OAM Network"
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+        resourceVendor: AT&T
+        version: 2.0
+      properties: 
+        flow_pattern: E-LAN
+        layer_protocol: IP
+        network_id: 
+          get_input: oam_net_id
+        network_technology: Contrail
+        network_type: vIPR_ATM_OAM
+        test_access: none
+      type: org.openecomp.resource.vl.OAM
+    vlc1_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+  policies: 
+    - 
+      mme_autoscale_policy: 
+        properties: 
+          factor: cpu_load
+          increment: 1
+          max_instances: 4
+          min_instances: 1
+          threshold: 80%
+        target: 
+          - vfmoduleVmmeModule-1
+        type: org.openecomp.policy.Autoscaling
+  substitution_mapping: 
+    requirements: 
+      - 
+        vlc1_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc2_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_a.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_b.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+    type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithL3NetworkInVFMod.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithL3NetworkInVFMod.yml
new file mode 100644
index 0000000..6aee48b
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithL3NetworkInVFMod.yml
@@ -0,0 +1,1299 @@
+--- 
+description: "VF Template for pseodo vMME"
+imports: 
+  NovaServerGlobalTypes: 
+    file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata: 
+  category: "Application L4+"
+  description: vMME_VF
+  invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+  name: vMME_VF
+  subcategory: Firewall
+  type: VF
+  UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+  resourceVendor: Ericsson
+topology_template: 
+  groups: 
+    vfmoduleVmmeModule-1: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      metadata: 
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelName: "vMME::module-1"
+        vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+      properties: 
+        artifacts: 
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+        availability_zone_count: 2
+        contrail_service_instance: true
+        vf_module_description: "vMME expansion VF Module"
+        vf_module_label: "vMME Expansion VF Module"
+        vf_module_type: Expansion
+        volume_group: false
+      type: org.openecomp.groups.VfModule
+    vmme_small: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      properties: 
+        description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+        heat_file: ../Artifacts/vmme_small.yml
+      type: org.openecomp.groups.heat.HeatStack
+    vmme_small_create_fsb: 
+      members: 
+        - FSB1_volume
+        - FSB2_volume
+      properties: 
+        description: "server template for vMME"
+        heat_file: ../Artifacts/vmme_small_create_fsb.yml
+      type: org.openecomp.groups.heat.HeatStack
+  inputs: 
+    Internal1_net_cidr: 
+      default: 169.253.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_gateway_ip: 
+      default: "169.253.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_cidr: 
+      default: 169.255.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_gateway_ip: 
+      default: "169.255.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    fsb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb1_vfc_image_name: 
+      default: MME_FSB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    fsb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    fsb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb2_vfc_flavor: 
+      defualt: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb2_vfc_image_name: 
+      default: MME_FSB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB002
+      description: "VFC instance name"
+      type: string
+    fsb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb1_vfc_image_name: 
+      default: MME_GPB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb2_vfc_image_name: 
+      default: MME_GPB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb1_vfc_image_name: 
+      default: MME_NCB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb2_vfc_image_name: 
+      default: MME_NCB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    network_deployment_node: 
+      description: "The target LCP node for deployment of this Network instance"
+      type: string
+    oam_net_id: 
+      default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+      description: "uuid of oam network"
+      hidden: false
+      immutable: false
+      type: string
+    vlc1_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc1_vfc_image_name: 
+      default: MME_VLC1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    vlc2_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc2_vfc_image_name: 
+      default: MME_VLC2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+  node_templates: 
+    FSB1: 
+      capabilities: 
+        monitoring_capabilty: 
+          properties: 
+            name: high_cpu
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    FSB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    Internal1_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal1_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal1_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal1_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    Internal2_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal2_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal2_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal2_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    NCB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    NCB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc1_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc2_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    fsb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    oam_net: 
+      metadata: 
+        category: VL
+        description: "Mobility OAM Network"
+        invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+        name: "Mobility OAM Network"
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+        resourceVendor: AT&T
+        version: 2.0
+      properties: 
+        flow_pattern: E-LAN
+        layer_protocol: IP
+        network_id: 
+          get_input: oam_net_id
+        network_technology: Contrail
+        network_type: vIPR_ATM_OAM
+        test_access: none
+      type: org.openecomp.resource.vl.OAM
+    vlc1_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+  policies: 
+    - 
+      mme_autoscale_policy: 
+        properties: 
+          factor: cpu_load
+          increment: 1
+          max_instances: 4
+          min_instances: 1
+          threshold: 80%
+        target: 
+          - vfmoduleVmmeModule-1
+        type: org.openecomp.policy.Autoscaling
+  substitution_mapping: 
+    requirements: 
+      - 
+        vlc1_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc2_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_a.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_b.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+    type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithUpdatedUUIDInConfig.yml b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithUpdatedUUIDInConfig.yml
new file mode 100644
index 0000000..6aee48b
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/onap-sdc-artifact-generator-test/src/main/resources/vf_vmme_template_WithUpdatedUUIDInConfig.yml
@@ -0,0 +1,1299 @@
+--- 
+description: "VF Template for pseodo vMME"
+imports: 
+  NovaServerGlobalTypes: 
+    file: NovaServerGlobalTypesServiceTemplate.yaml
+metadata: 
+  category: "Application L4+"
+  description: vMME_VF
+  invariantUUID: b8643c59-e2c2-4f86-880d-571d4d9d5d22
+  name: vMME_VF
+  subcategory: Firewall
+  type: VF
+  UUID: b020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+  resourceVendor: Ericsson
+topology_template: 
+  groups: 
+    vfmoduleVmmeModule-1: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      metadata: 
+        vfModuleModelInvariantUUID: adf1a10a-f788-492f-9ea7-7ff91dd55f8c
+        vfModuleModelName: "vMME::module-1"
+        vfModuleModelUUID: x020ed1e-4bc7-4fc0-ba7e-cc7af6da7ffc
+        vfModuleModelVersion: 1
+      properties: 
+        artifacts: 
+          - /Artifacts/vmme_small_create_fsb.yml
+          - /Artifacts/vmme_small.yml
+        availability_zone_count: 2
+        contrail_service_instance: true
+        vf_module_description: "vMME expansion VF Module"
+        vf_module_label: "vMME Expansion VF Module"
+        vf_module_type: Expansion
+        volume_group: false
+      type: org.openecomp.groups.VfModule
+    vmme_small: 
+      members: 
+        - FSB1
+        - FSB2
+        - NCB1
+        - NCB2
+        - VLC1
+        - VLC2
+        - GPB1
+        - GPB2
+        - Internal1_net
+        - Internal2_net
+        - fsb1_oam
+        - fsb1_internal1
+        - fsb1_internal2
+        - fsb2_oam
+        - fsb2_internal2
+        - ncb1_internal1
+        - ncb1_internal2
+        - ncb2_internal1
+        - ncb2_internal2
+        - gpb1_internal1
+        - gpb1_internal2
+        - gpb2_internal1
+        - gpb2_internal2
+        - vlc1_oam
+        - vlc1_internal1
+        - vlc1_internal2
+        - vlc1_sctp_a
+        - vlc1_sctp_b
+        - vlc1_gtp
+        - vlc2_oam
+        - vlc2_internal1
+        - vlc2_internal2
+        - vlc2_sctp_a
+        - vlc2_sctp_b
+        - vlc1_gtp
+      properties: 
+        description: "HOT template to create vmme 2 fsb 2 ncb 2 gbp 2 vlc"
+        heat_file: ../Artifacts/vmme_small.yml
+      type: org.openecomp.groups.heat.HeatStack
+    vmme_small_create_fsb: 
+      members: 
+        - FSB1_volume
+        - FSB2_volume
+      properties: 
+        description: "server template for vMME"
+        heat_file: ../Artifacts/vmme_small_create_fsb.yml
+      type: org.openecomp.groups.heat.HeatStack
+  inputs: 
+    Internal1_net_cidr: 
+      default: 169.253.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal1_net_gateway_ip: 
+      default: "169.253.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_cidr: 
+      default: 169.255.0.0/17
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_dhcp: 
+      default: "False"
+      hidden: false
+      immutable: false
+      type: string
+    Internal2_net_gateway_ip: 
+      default: "169.255.0.3"
+      hidden: false
+      immutable: false
+      type: string
+    fsb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb1_vfc_image_name: 
+      default: MME_FSB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    fsb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    fsb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    fsb2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    fsb2_vfc_flavor: 
+      defualt: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    fsb2_vfc_image_name: 
+      default: MME_FSB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    fsb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB002
+      description: "VFC instance name"
+      type: string
+    fsb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb1_vfc_image_name: 
+      default: MME_GPB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    gpb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    gpb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    gpb2_vfc_image_name: 
+      default: MME_GPB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    gpb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    gpb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb1_vfc_image_name: 
+      default: MME_NCB1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    ncb2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    ncb2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    ncb2_vfc_image_name: 
+      default: MME_NCB2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    ncb2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    ncb2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    network_deployment_node: 
+      description: "The target LCP node for deployment of this Network instance"
+      type: string
+    oam_net_id: 
+      default: 47bf4cca-0961-422f-bcd6-d5a4fbb1a351
+      description: "uuid of oam network"
+      hidden: false
+      immutable: false
+      type: string
+    vlc1_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc1_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc1_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc1_vfc_image_name: 
+      default: MME_VLC1_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc1_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc1_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+    vlc2_gtp_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_internal1_mac_address: 
+      default: "00:80:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_internal2_mac_address: 
+      default: "00:81:37:0E:0B:12"
+      description: "Internal connection point mac_address"
+      type: string
+    vlc2_oam_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_a_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_sctp_b_ip_address: 
+      default: "107.250.172.221"
+      description: "OAM ip address"
+      type: string
+    vlc2_vfc_flavor: 
+      default: m4.xlarge4
+      description: "VFC flavor"
+      type: string
+    vlc2_vfc_image_name: 
+      default: MME_VLC2_16ACP03.qcow2
+      description: "VFC image name"
+      type: string
+    vlc2_vfc_instance_name: 
+      default: ZRDM1MMEX36FSB001
+      description: "VFC instance name"
+      type: string
+    vlc2_vfc_type_tag: 
+      description: "VFC type tag"
+      type: string
+  node_templates: 
+    FSB1: 
+      capabilities: 
+        monitoring_capabilty: 
+          properties: 
+            name: high_cpu
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    FSB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: fsb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: FSB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: fsb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: fsb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: fsb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: fsb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    GPB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: gpb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: GPB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: gpb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: gpb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: gpb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: gpb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    Internal1_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal1_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_1
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal1_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal1_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    Internal2_net: 
+      metadata: 
+        category: Generic
+        description: "Internal Network"
+        invariantUUID: 14a25c59-e2c2-4f86-880d-371d4d9dc88c
+        name: Network
+        subcategory: Infrastructure
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da1234
+        resourceVendor: AT&T
+        version: 1.0
+      properties: 
+        cidr: 
+          get_input: Internal2_net_cidr
+        contrail_virtual_network: 
+          vn_external: false
+          vn_forwarding_mode: l2
+          vn_name: MME-24474-Ericsson-WTC-lab_int_MMEX36_net_2
+          vn_shared: false
+        enable_dhcp: 
+          get_input: Internal2_net_enable_dhcp
+        flow_pattern: E-LAN
+        gateway_ip: 
+          get_input: Internal2_net_gateway_ip
+        ip_version: 4
+        layer_protocol: IP
+        network_deployment_node: 
+          get_input: network_deployment_node
+        network_ecomp_name: false
+        network_homing: false
+        network_role: ~
+        network_technology: Contrail
+        network_type: Tenant_Layer_3
+        test_access: none
+      type: org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork
+    NCB1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb1_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    NCB2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: ncb2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: NCB2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: ncb2_vfc_image_name
+        vfc_instance_name: 
+          get_input: ncb2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: ncb2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: ncb2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC1: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc1_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC1
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc1_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc1_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc1_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc1_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    VLC2: 
+      capabilities: 
+        monitoring_capability: 
+          properties: 
+            name: cpu_load
+        nfv_compute: 
+          properties: 
+            vfc_flavor: 
+              get_input: vlc2_vfc_flavor
+        scaling_capability: 
+          properties: 
+            init_instances: 1
+            max_instances: 1
+            min_instances: 1
+      metadata: 
+        category: Generic
+        description: "VFC based on OpenStack Nova Server"
+        invariantUUID: a8943d58-d3a3-4f42-770a-571abd9d3da2
+        name: "Nova Server"
+        subcategory: Infrastructure
+        type: VFC
+        UUID: 7788dc12-9716-abcf-13c0-ebd4111c69f0
+        resourceVendor: Ericsson
+        version: 1.0
+      properties: 
+        vfc_description: VLC2
+        vfc_ecomp_name: false
+        vfc_image_name: 
+          get_input: vlc2_vfc_image_name
+        vfc_instance_name: 
+          get_input: vlc2_vfc_instance_name
+        vfc_type_tag: 
+          get_input: vlc2_vfc_type_tag
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_oam
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: vlc2_internal2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    fsb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: fsb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    fsb2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: fsb2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: FSB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    gpb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: gpb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: GPB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    ncb2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: ncb2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: NCB2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    oam_net: 
+      metadata: 
+        category: VL
+        description: "Mobility OAM Network"
+        invariantUUID: 18643c59-e2c2-4f86-880d-371d4d9dc52a
+        name: "Mobility OAM Network"
+        type: VL
+        UUID: 1a20ed2e-abcd-3f20-ca4e-cc7af4da7fcc
+        resourceVendor: AT&T
+        version: 2.0
+      properties: 
+        flow_pattern: E-LAN
+        layer_protocol: IP
+        network_id: 
+          get_input: oam_net_id
+        network_technology: Contrail
+        network_type: vIPR_ATM_OAM
+        test_access: none
+      type: org.openecomp.resource.vl.OAM
+    vlc1_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc1_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc1_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc1_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC1
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_gtp_net: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_gtp_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal1: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal1_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal1_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_internal2: 
+      properties: 
+        address_info: 
+          mac_address: 
+            get_input: vlc2_internal2_mac_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: Internal2_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_oam: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_oam_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+        - 
+          link: 
+            capability: tosca.capabilities.network.Bindable
+            node: oam_net
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_a: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_a_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+    vlc2_sctp_b: 
+      properties: 
+        address_Info: 
+          ip_address: 
+            get_input: vlc2_sctp_b_ip_address
+      requirements: 
+        - 
+          binding: 
+            capability: tosca.capabilities.network.Bindable
+            node: VLC2
+            relationship: tosca.relationships.network.BindsTo
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+  policies: 
+    - 
+      mme_autoscale_policy: 
+        properties: 
+          factor: cpu_load
+          increment: 1
+          max_instances: 4
+          min_instances: 1
+          threshold: 80%
+        target: 
+          - vfmoduleVmmeModule-1
+        type: org.openecomp.policy.Autoscaling
+  substitution_mapping: 
+    requirements: 
+      - 
+        vlc1_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc2_gtp_net.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_a.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+      - 
+        vlc1_sctp_b.link: 
+          capability: tosca.capabilities.network.Linkable
+          relationship: tosca.relationships.network.LinksTo
+    type: org.openecomp.resource.vf.vmme
+tosca_definitions_version: tosca_simple_profile_for_ecomp_1_0
diff --git a/common/onap-sdc-artifact-generator-lib/pom.xml b/common/onap-sdc-artifact-generator-lib/pom.xml
new file mode 100644
index 0000000..05a01c2
--- /dev/null
+++ b/common/onap-sdc-artifact-generator-lib/pom.xml
@@ -0,0 +1,24 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <name>onap-sdc-artifact-generator-lib</name>
+    <groupId>org.onap.sdc.common</groupId>
+    <artifactId>onap-sdc-artifact-generator-lib</artifactId>
+    <packaging>pom</packaging>
+
+    <parent>
+        <groupId>org.onap.sdc.common</groupId>
+        <artifactId>onap-common-lib</artifactId>
+        <version>1.2.0-SNAPSHOT</version>
+        <relativePath>..</relativePath>
+    </parent>
+
+
+    <modules>
+        <module>onap-sdc-artifact-generator-api</module>
+        <module>onap-sdc-artifact-generator-core</module>
+        <module>onap-sdc-artifact-generator-test</module>
+    </modules>
+
+</project>