Fix - nfc_naming_code and nfc_function 09/74609/1
authorojasdubey <ojas.dubey@amdocs.com>
Thu, 13 Dec 2018 12:32:21 +0000 (18:02 +0530)
committerojasdubey <ojas.dubey@amdocs.com>
Thu, 13 Dec 2018 12:34:56 +0000 (18:04 +0530)
1. Fix for nfc_naming code not getting populated
   for more than one instance of same vm type
2. Added and updated the unit test cases and test
   data
3. Sonar fixes

Change-Id: I50ddb7d388a5e6b2d4370dedfbbe23ba31a4b61d
Issue-ID: SDC-2001
Signed-off-by: ojasdubey <ojas.dubey@amdocs.com>
20 files changed:
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/AbstractSubstituteToscaEnricher.java
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/java/org/openecomp/sdc/enrichment/impl/tosca/AbstractSubstituteToscaEnricherTest.java
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHANotMandatory/in/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichHANotMandatory/out/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichNfcNamingFunction/in/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichNfcNamingFunction/in/nest_cfed_aServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichNfcNamingFunction/in/nest_cfed_bServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichNfcNamingFunction/in/nest_commonServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichNfcNamingFunction/out/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichNfcNamingFunction/out/nest_cfed_aServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichNfcNamingFunction/out/nest_cfed_bServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichNfcNamingFunction/out/nest_commonServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/catalogInstance/out/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/multiLevel/out/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/nested/oneLevel/out/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/noPorts/out/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/scalingInstance/out/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/singleSubstitution/diffPortType/out/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichPortMirroring/singleSubstitution/samePortType/out/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/toscaGlobalServiceTemplates/GlobalSubstitutionTypesServiceTemplate.yaml

index afc5bd2..658fc98 100644 (file)
@@ -29,7 +29,6 @@ import static org.openecomp.sdc.tosca.datatypes.ToscaNodeType.MULTIDEPLOYMENTFLA
 import static org.openecomp.sdc.tosca.datatypes.ToscaNodeType.VFC_ABSTRACT_SUBSTITUTE;
 import static org.openecomp.sdc.tosca.datatypes.ToscaRelationshipType.NATIVE_DEPENDS_ON;
 import static org.openecomp.sdc.tosca.services.ToscaConstants.SERVICE_TEMPLATE_FILTER_PROPERTY_NAME;
-import static org.openecomp.sdc.translator.services.heattotosca.Constants.ABSTRACT_NODE_TEMPLATE_ID_PREFIX;
 import static org.openecomp.sdc.translator.services.heattotosca.Constants.VNF_NODE_TEMPLATE_ID_SUFFIX;
 
 import java.util.ArrayList;
@@ -38,6 +37,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 import java.util.Optional;
+
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.onap.sdc.tosca.datatypes.model.NodeTemplate;
@@ -92,7 +92,8 @@ public class AbstractSubstituteToscaEnricher {
             final NodeTemplate nodeTemplate =
                     toscaAnalyzerService.getNodeTemplateById(serviceTemplate, nodeTemplateId).orElse(null);
 
-            if (toscaAnalyzerService.isTypeOf(nodeTemplate, VFC_ABSTRACT_SUBSTITUTE, serviceTemplate, toscaModel)) {
+            if (nodeTemplate != null && toscaAnalyzerService.isTypeOf(nodeTemplate, VFC_ABSTRACT_SUBSTITUTE,
+                    serviceTemplate, toscaModel)) {
 
                 String componentDisplayName = getComponentDisplayName(nodeTemplateId, nodeTemplate);
 
@@ -115,15 +116,17 @@ public class AbstractSubstituteToscaEnricher {
 
             boolean isServiceTemplateFilterNotExists = false;
             if (!StringUtils.isEmpty(mandatory)) {
-                Map innerProps = (Map<String, Object>) nodeTemplate.getProperties()
+                Map<String, Object> innerProps = (Map<String, Object>) nodeTemplate.getProperties()
                                                                    .get(SERVICE_TEMPLATE_FILTER_PROPERTY_NAME);
 
                 if (innerProps == null) {
-                    innerProps = new HashMap<String, Object>();
+                    innerProps = new HashMap<>();
                     isServiceTemplateFilterNotExists = true;
                 }
-
-                innerProps.put(MANDATORY, getValue(mandatory));
+                Optional<Boolean> mandatoryValue = getValue(mandatory);
+                if (mandatoryValue.isPresent()) {
+                    innerProps.put(MANDATORY, mandatoryValue.get());
+                }
 
                 if (isServiceTemplateFilterNotExists) {
                     nodeTemplate.getProperties().put(SERVICE_TEMPLATE_FILTER_PROPERTY_NAME, innerProps);
@@ -168,7 +171,8 @@ public class AbstractSubstituteToscaEnricher {
             final NodeTemplate nodeTemplate =
                     toscaAnalyzerService.getNodeTemplateById(serviceTemplate, nodeTemplateId).orElse(null);
 
-            if (toscaAnalyzerService.isTypeOf(nodeTemplate, VFC_ABSTRACT_SUBSTITUTE, serviceTemplate, toscaModel)) {
+            if (nodeTemplate != null &&
+                    toscaAnalyzerService.isTypeOf(nodeTemplate, VFC_ABSTRACT_SUBSTITUTE, serviceTemplate, toscaModel)) {
 
                 String componentDisplayName = getComponentDisplayName(nodeTemplateId, nodeTemplate);
 
@@ -238,15 +242,13 @@ public class AbstractSubstituteToscaEnricher {
 
     private String getComponentDisplayName(String nodeTemplateId, NodeTemplate nodeTemplate) {
         String componentDisplayName;
-        if (nodeTemplateId.contains(ABSTRACT_NODE_TEMPLATE_ID_PREFIX)) {
-            String removedPrefix = nodeTemplateId.split(ABSTRACT_NODE_TEMPLATE_ID_PREFIX)[1];
-            final String[] removedSuffix = removedPrefix.split("_\\d");
-            componentDisplayName = removedSuffix[0];
+        final String type = nodeTemplate.getType();
+        if (MULTIDEPLOYMENTFLAVOR_NODE_TYPE.equals(type)) {
+            componentDisplayName = nodeTemplateId.substring(0, nodeTemplateId.lastIndexOf(VNF_NODE_TEMPLATE_ID_SUFFIX));
         } else {
-            final String type = nodeTemplate.getType();
-            componentDisplayName = MULTIDEPLOYMENTFLAVOR_NODE_TYPE.equals(type)
-                            ? nodeTemplateId.substring(0, nodeTemplateId.lastIndexOf(VNF_NODE_TEMPLATE_ID_SUFFIX))
-                            : type.substring(type.lastIndexOf('.') + 1);
+            String vmType = DataModelUtil.getNamespaceSuffix(type);
+            final String[] removedSuffix = vmType.split("_\\d+");
+            componentDisplayName = removedSuffix[0];
         }
         return componentDisplayName;
     }
@@ -265,14 +267,14 @@ public class AbstractSubstituteToscaEnricher {
         }
     }
 
-    private Boolean getValue(String value) {
+    private Optional<Boolean> getValue(String value) {
         switch (value) {
             case "YES":
-                return true;
+                return Optional.of(Boolean.TRUE);
             case "NO":
-                return false;
+                return Optional.of(Boolean.FALSE);
             default:
-                return null;
+                return Optional.empty();
         }
     }
 
index 8430556..f185116 100644 (file)
@@ -30,7 +30,7 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import org.apache.commons.collections.map.HashedMap;
+
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
@@ -49,8 +49,8 @@ public class AbstractSubstituteToscaEnricherTest extends BaseToscaEnrichmentTest
   @InjectMocks
   AbstractSubstituteToscaEnricher toscaEnricher;
 
-  String vspId = null;
-  Version version = new Version();
+  private String vspId = null;
+  private Version version = new Version();
 
   @Before
   public void injectDoubles() {
@@ -83,9 +83,9 @@ public class AbstractSubstituteToscaEnricherTest extends BaseToscaEnrichmentTest
     when(utilMock.getPropertiesfromCompQuestionnaire(vspId,version)).thenReturn
         (componentTypetoParams);
 
-    Map<String,String> map = new HashMap<String,String>();
-    Map<String, List<String>> sourceToTargetDependencies = new HashMap<String, List<String>>();
-    List<String> targets = new ArrayList<String>();
+    Map<String,String> map = new HashMap<>();
+    Map<String, List<String>> sourceToTargetDependencies = new HashMap<>();
+    List<String> targets = new ArrayList<>();
     targets.add("fe"); targets.add("be");
     sourceToTargetDependencies.put("pd_server", targets);
 
@@ -110,8 +110,8 @@ public class AbstractSubstituteToscaEnricherTest extends BaseToscaEnrichmentTest
             "/mock/toscaGlobalServiceTemplates/",
             "MainServiceTemplate.yaml");
 
-    Map<String, Map<String, Object>> componentTypetoParams = new HashMap();
-    Map<String, Object> innerProps = new HashedMap();
+    Map<String, Map<String, Object>> componentTypetoParams = new HashMap<>();
+    Map<String, Object> innerProps = new HashMap<>();
     innerProps.put(MANDATORY, "NO");
     innerProps.put(HIGH_AVAIL_MODE, "");
     innerProps.put(NFC_NAMING_CODE, "pd_server_code1");
@@ -125,8 +125,8 @@ public class AbstractSubstituteToscaEnricherTest extends BaseToscaEnrichmentTest
     when(utilMock.getPropertiesfromCompQuestionnaire(vspId,version)).thenReturn
         (componentTypetoParams);
 
-    Map<String,String> map = new HashMap<String,String>();
-    Map<String, List<String>> sourceToTargetDependencies = new HashMap<String, List<String>>();
+    Map<String,String> map = new HashMap<>();
+    Map<String, List<String>> sourceToTargetDependencies = new HashMap<>();
 
     when(utilMock.getSourceToTargetComponent()).thenReturn(map);
     when(utilMock.populateDependencies(vspId,version,map)).thenReturn(sourceToTargetDependencies);
@@ -148,23 +148,23 @@ public class AbstractSubstituteToscaEnricherTest extends BaseToscaEnrichmentTest
             "/mock/toscaGlobalServiceTemplates/",
             "MainServiceTemplate.yaml");
 
-    Map<String, Map<String, Object>> componentTypetoParams = new HashMap();
-    Map<String, Object> innerProps = new HashedMap();
+    Map<String, Map<String, Object>> componentTypetoParams = new HashMap<>();
+    Map<String, Object> innerProps = new HashMap<>();
 
     innerProps.put(MANDATORY, "");
     innerProps.put(MIN_INSTANCES, 1);
     innerProps.put(MAX_INSTANCES, 5);
 
-    componentTypetoParams.put("pd_server_vm", innerProps);
+    componentTypetoParams.put("pd_server", innerProps);
 
     when(utilMock.getPropertiesfromCompQuestionnaire(vspId,version)).thenReturn
         (componentTypetoParams);
 
-    Map<String,String> map = new HashMap<String,String>();
-    Map<String, List<String>> sourceToTargetDependencies = new HashMap<String, List<String>>();
-    List<String> targets = new ArrayList<String>();
+    Map<String,String> map = new HashMap<>();
+    Map<String, List<String>> sourceToTargetDependencies = new HashMap<>();
+    List<String> targets = new ArrayList<>();
     targets.add("fe");
-    sourceToTargetDependencies.put("pd_server_vm", targets);
+    sourceToTargetDependencies.put("pd_server", targets);
 
     when(utilMock.getSourceToTargetComponent()).thenReturn(map);
 
@@ -233,4 +233,41 @@ public class AbstractSubstituteToscaEnricherTest extends BaseToscaEnrichmentTest
 
     Assert.assertEquals(errors.size(), 0);
   }
+
+  @Test
+  public void testEnrichComponentSameVmTypeNfcNamingFunction() throws Exception {
+    outputFilesPath = "/mock/enrichNfcNamingFunction/out";
+    ToscaServiceModel toscaServiceModel =
+            loadToscaServiceModel("/mock/enrichNfcNamingFunction/in",
+                    "/mock/toscaGlobalServiceTemplates/",
+                    "MainServiceTemplate.yaml");
+
+    Map<String, Map<String, Object>> componentTypetoParams = new HashMap<>();
+    Map<String, Object> innerProps = new HashMap<>();
+    innerProps.put(MANDATORY, "NO");
+    innerProps.put(HIGH_AVAIL_MODE, "");
+    innerProps.put(NFC_NAMING_CODE, "cfed_changed_from_ui");
+    innerProps.put(VFC_CODE, "pd_server_code");
+    innerProps.put(NFC_FUNCTION, "cfed_naming_function");
+    innerProps.put(MIN_INSTANCES, null);
+    innerProps.put(MAX_INSTANCES, null);
+
+    componentTypetoParams.put("cfed", innerProps);
+
+    when(utilMock.getPropertiesfromCompQuestionnaire(vspId,version)).thenReturn
+            (componentTypetoParams);
+
+    Map<String,String> map = new HashMap<>();
+    Map<String, List<String>> sourceToTargetDependencies = new HashMap<>();
+
+    when(utilMock.getSourceToTargetComponent()).thenReturn(map);
+    when(utilMock.populateDependencies(vspId,version,map)).thenReturn(sourceToTargetDependencies);
+
+    Map<String, List<ErrorMessage>> errors =
+            toscaEnricher.enrich(toscaServiceModel, vspId, version );
+
+    compareActualAndExpectedModel(toscaServiceModel);
+
+    Assert.assertEquals(errors.size(), 0);
+  }
 }
index 612a406..feddcc3 100644 (file)
@@ -422,7 +422,7 @@ topology_template:
       description: csb internal network name
       default: int_mog_csb_net
   node_templates:
-    abstract_pd_server_vm:
+    abstract_pd_server:
       type: org.openecomp.resource.abstract.nodes.pd_server
       directives:
       - substitutable
@@ -467,8 +467,8 @@ topology_template:
           - SELF
           - service_template_filter
           - index_value
-        vm_type_tag: pd_server_vm
-        nfc_naming_code: pd_server_vm
+        vm_type_tag: pd_server
+        nfc_naming_code: pd_server
   groups:
     hot-mog-0108-bs1271_group:
       type: org.openecomp.groups.heat.HeatStack
index 99ae78a..e862427 100644 (file)
@@ -422,7 +422,7 @@ topology_template:
       description: csb internal network name
       default: int_mog_csb_net
   node_templates:
-    abstract_pd_server_vm:
+    abstract_pd_server:
       type: org.openecomp.resource.abstract.nodes.pd_server
       directives:
       - substitutable
@@ -467,8 +467,8 @@ topology_template:
           - SELF
           - service_template_filter
           - index_value
-        nfc_naming_code: pd_server_vm
-        vm_type_tag: pd_server_vm
+        nfc_naming_code: pd_server
+        vm_type_tag: pd_server
         min_instances: 1
         max_instances: 5
   groups:
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichNfcNamingFunction/in/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichNfcNamingFunction/in/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..50f9480
--- /dev/null
@@ -0,0 +1,2218 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Main
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+- openecomp_index:
+    file: openecomp/_index.yml
+topology_template:
+  inputs:
+    cfed_flavor_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: cfed_flavor_name
+      type: string
+      description: CDL of cfed flavor values.
+      default: nd.c8r32d15s1e15
+      
+    cfed_sigv6_ipmap_sideB_0_fixed_dbaas:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: cfed_sigv6_ipmap_sideB_0_fixed_dbaas
+      type: list
+      description: IP list for this IP usage type.
+      default:
+      - 2001:1890:1001:218c::24:3
+      - 2001:1890:1001:218c::24:4
+      entry_schema:
+        type: string
+    license_reference:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: license_reference
+      type: string
+      description: Reference string used in algorithmic license key generation.
+      default: tas02DLTASapril2015
+    cfed_sig_ipmap_sideB_0_fixed_dbaas:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: cfed_sig_ipmap_sideB_0_fixed_dbaas
+      type: list
+      description: IP list for this IP usage type.
+      default:
+      - 12.121.107.52
+      - 12.121.107.53
+      entry_schema:
+        type: string
+    gls_image_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: gls_image_name
+      type: string
+      description: Image for this VMtype.
+      default: USP_CTS_R35.15.01.0200.x86_64.qcow2
+    sig_subnet_id:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: sig_subnet_id
+      type: string
+      description: ID of the subnet associated with tag "sig".
+      default: 485d41b9-85f1-4c10-ac6c-2e88b05fd420
+    oam_sigv6_ipmap_sideA_sns0_fixed_dns:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: oam_sigv6_ipmap_sideA_sns0_fixed_dns
+      type: list
+      description: IP list for this IP usage type.
+      default:
+      - 2001:1890:1001:218C::24:a
+      entry_schema:
+        type: string
+    gls_dmz_ipmap_sideB_connectivity_ip:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: gls_dmz_ipmap_sideB_connectivity_ip
+      type: list
+      description: IP list for this IP usage type.
+      default:
+      - 192.20.195.13
+      entry_schema:
+        type: string
+    v6_ntp_server:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: v6_ntp_server
+      type: string
+      description: |
+        (optional) IPV6 NTP server list.
+        It is passed as a string instead of a CDL because
+        of how it is handled internally.
+      default: ''
+    oam_dmz_ipmap_sideA_mi0_fixed_default:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: oam_dmz_ipmap_sideA_mi0_fixed_default
+      type: list
+      description: IP list for this IP usage type.
+      default:
+      - 192.20.195.5
+      entry_schema:
+        type: string
+    system_prefix:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: system_prefix
+      type: string
+      description: System prefix used inside the VNF.
+      default: tas02
+    oam_sig_ipmap_sideA_sns0_fixed_dns:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: oam_sig_ipmap_sideA_sns0_fixed_dns
+      type: list
+      description: IP list for this IP usage type.
+      default:
+      - 12.121.107.42
+      entry_schema:
+        type: string
+    oam_image_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: oam_image_name
+      type: string
+      description: Image for this VMtype.
+      default: USP_CTS_R35.15.01.0200.x86_64.qcow2
+    net_types:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: net_types
+      type: list
+      description: CDL of subnet tags.
+      default:
+      - sigv6
+      - sig
+      - dmz
+      entry_schema:
+        type: string
+    cfed_sig_ipmap_sideA_0_float_published:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: cfed_sig_ipmap_sideA_0_float_published
+      type: list
+      description: IP list for this IP usage type.
+      default:
+      - 12.121.107.54
+      - 12.121.107.55
+      entry_schema:
+        type: string
+    cfed_sigv6_ipmap_sideA_0_fixed_dbaas:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: cfed_sigv6_ipmap_sideA_0_fixed_dbaas
+      type: list
+      description: IP list for this IP usage type.
+      default:
+      - 2001:1890:1001:218c::24:1
+      - 2001:1890:1001:218c::24:2
+      entry_schema:
+        type: string
+    v4_enum_server:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: v4_enum_server
+      type: string
+      description: |
+        (optional) IPV4 ENUM server list.
+        It is passed as a string instead of a CDL because
+        of how it is handled internally.
+      default: ''
+    cfed_image_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: cfed_image_name
+      type: string
+      description: Image for this VMtype.
+      default: USP_CTS_R35.15.01.0200.x86_64.qcow2
+    cfed_sigv6_ipmap_sideA_0_float_published:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: cfed_sigv6_ipmap_sideA_0_float_published
+      type: list
+      description: IP list for this IP usage type.
+      default:
+      - 2001:1890:1001:218c::24:5
+      - 2001:1890:1001:218c::24:6
+      entry_schema:
+        type: string
+    oam_flavor_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: oam_flavor_name
+      type: string
+      description: CDL of oam flavor values.
+      default: nd.c4r8d21s8e21
+      
+    cfed_sig_ipmap_sideA_0_fixed_dbaas:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: cfed_sig_ipmap_sideA_0_fixed_dbaas
+      type: list
+      description: IP list for this IP usage type.
+      default:
+      - 12.121.107.50
+      - 12.121.107.51
+      entry_schema:
+        type: string
+    v6_enum_server:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: v6_enum_server
+      type: string
+      description: |
+        (optional) IPV6 ENUM server list.
+        It is passed as a string instead of a CDL because
+        of how it is handled internally.
+      default: ''
+    default_action:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: default_action
+      type: string
+      description: |
+        Default action for all VMs. This may be overridden for
+        specific VM groups, pairs or VMs via the ENV file.
+      default: install
+      constraints:
+      - valid_values:
+        - install
+        - recreate
+        - scale-in
+        - scale-out
+        - heal
+        - update
+    oam_dmz_ipmap_sideA_mi0_float_default:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: oam_dmz_ipmap_sideA_mi0_float_default
+      type: list
+      description: IP list for this IP usage type.
+      default:
+      - 192.20.195.6
+      entry_schema:
+        type: string
+    sigv6_cidr:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: sigv6_cidr
+      type: string
+      description: CIDR associated with tag "sigv6".
+      default: 2001:1890:1001:218c::/64
+    oam_volume_count:
+      label: volume count
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: oam_volume_count
+      type: float
+      description: number of OAM volumes needed
+      default: 2
+    storage_size:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: storage_size
+      type: float
+      description: Size of /storage in GB.
+      default: 4
+      constraints:
+      - in_range:
+        - 4
+        - null
+    oam_names:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: oam_names
+      type: list
+      description: CDL of oam VM names.
+      default:
+      - dpa2bctsf5001vm001
+      - dpa2bctsf5001vm002
+      entry_schema:
+        type: string
+    sig_default_gateway:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: sig_default_gateway
+      type: string
+      description: Default gateway IP address  associated with tag "sig".
+      default: 12.121.107.33
+    sig_net_id:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: sig_net_id
+      type: string
+      description: ID of the network associated with tag "sig".
+      default: 7aa61674-a934-49ab-a5f9-879a5864ec18
+      
+    sigv6_v6_subnet_id:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: sigv6_v6_subnet_id
+      type: string
+      description: ID of the subnet associated with tag "sigv6".
+      default: 5effa3c8-5b6a-489f-90ca-4b7989d1edc5
+    sigv6_Sec_Grp:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: sigv6_Sec_Grp
+      type: string
+      description: UUID of the security group.
+      default: 1dd29b75-2240-49c4-8fd7-d0bf453c8e94
+    gls_names:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: gls_names
+      type: list
+      description: CDL of gls VM names.
+      default:
+      - dpa2bctsf5001vm013
+      - dpa2bctsf5001vm014
+      entry_schema:
+        type: string
+    local_enum_domain:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: local_enum_domain
+      type: string
+      description: Local ENUM domain value.
+      default: ''
+    vf_module_index:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: vf_module_index
+      type: float
+      description: Unique index for this VNF Module instance.
+      default: 0
+      constraints:
+      - in_range:
+        - 4
+        - null
+    backup_file1:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: backup_file1
+      type: string
+      description: |
+        <cURL path>/<backup file>
+        This is only used for restore (aka "disaster recovery").
+        The value only needs to go to the OAM pair.
+        Note that there is a 255 character limit on this value.
+      default: ''
+    vf_module_id:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: vf_module_id
+      type: string
+      description: Unique ID for this VNF Module instance.
+      default: ''
+    backup_file2:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: backup_file2
+      type: string
+      description: |
+        <cURL path>/<backup file>
+        This is only used for restore (aka "disaster recovery").
+        The value only needs to go to the OAM pair.
+        Note that there is a 255 character limit on this value.
+      default: ''
+    cfed_names:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: cfed_names
+      type: list
+      description: CDL of cfed VM names.
+      default:
+      - dpa2bctsf5001vm101
+      - dpa2bctsf5001vm102
+      - dpa2bctsf5001vm103
+      - dpa2bctsf5001vm104
+      entry_schema:
+        type: string
+    oam_dmz_ipmap_sideA_cnfg0_float_default:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: oam_dmz_ipmap_sideA_cnfg0_float_default
+      type: list
+      description: IP list for this IP usage type.
+      default:
+      - 192.20.195.4
+      entry_schema:
+        type: string
+    oam_sig_ipmap_sideB_sns0_fixed_dns:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: oam_sig_ipmap_sideB_sns0_fixed_dns
+      type: list
+      description: IP list for this IP usage type.
+      default:
+      - 12.121.107.43
+      entry_schema:
+        type: string
+    gls_flavor_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: gls_flavor_name
+      type: string
+      description: CDL of gls flavor values.
+      default: nd.c8r16d31s8e31
+      
+    int_vlan_id:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: int_vlan_id
+      type: string
+      description: Optional VLAN associated with the (0th) internal network.
+      default: ''
+      constraints:
+      - pattern: '[0-9]*'
+    gls_dmz_ipmap_sideA_connectivity_ip:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: gls_dmz_ipmap_sideA_connectivity_ip
+      type: list
+      description: IP list for this IP usage type.
+      default:
+      - 192.20.195.11
+      entry_schema:
+        type: string
+    v4_ntp_server:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: v4_ntp_server
+      type: string
+      description: |
+        (optional) IPV4 NTP server list.
+        It is passed as a string instead of a CDL because
+        of how it is handled internally.
+      default: 135.2.77.29
+    certificate:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: certificate
+      type: string
+      description: |
+        Flag (any non-null string) to indicate that a certificate should be acquired.
+      default: ''
+    gls_sigv6_ipmap_sideA_0_float_diam_gls:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: gls_sigv6_ipmap_sideA_0_float_diam_gls
+      type: list
+      description: IP list for this IP usage type.
+      default:
+      - 2001:1890:1001:218c::24:7
+      entry_schema:
+        type: string
+    vnf_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: vnf_name
+      type: string
+      description: Unique name for this VNF instance.
+      default: foo
+    oam_sigv6_ipmap_sideB_sns0_fixed_dns:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: oam_sigv6_ipmap_sideB_sns0_fixed_dns
+      type: list
+      description: IP list for this IP usage type.
+      default:
+      - 2001:1890:1001:218C::24:b
+      entry_schema:
+        type: string
+    vf_module_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: vf_module_name
+      type: string
+      description: Unique name for this VNF module instance.
+      default: ctsf5000v_base_module
+    dmz_default_gateway:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: dmz_default_gateway
+      type: string
+      description: Default gateway IP address  associated with tag "dmz".
+      default: 192.20.195.1
+    vm_counts:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: vm_counts
+      type: json
+      description: |
+        Maps VM type tags to the number of pairs of that type.
+      default:
+        cfed: '2'
+        oam: '1'
+        gls: '1'
+    gls_volume_count:
+      label: volume count
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: gls_volume_count
+      type: float
+      description: number of GLS volumes needed
+    v6_dns_server:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: v6_dns_server
+      type: string
+      description: |
+        (optional) IPV6 DNS server list.
+        It is passed as a string instead of a CDL because
+        of how it is handled internally.
+      default: 2000:5420:0:510::50:69/.,2000:5420:0:510::50:70/.
+    vnf_id:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: vnf_id
+      type: string
+      description: Unique ID for this VNF instance.
+      default: ''
+    lcm_keypair:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: lcm_keypair
+      type: string
+      description: Keypair used for lifecycle management access.
+      default: ''
+      
+    cfed_volume_ids_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: cfed_volume_ids_0
+      type: json
+      description: CFED Volume.
+      
+    availability_zone_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: availability_zone_0
+      type: string
+      description: Availability zone name.
+      default: dpa2b-kvm-az01
+    availability_zone_1:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: availability_zone_1
+      type: string
+      description: Availability zone name.
+      default: dpa2b-kvm-az02
+    gls_sigv6_ipmap_sideA_connectivity_ip:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: gls_sigv6_ipmap_sideA_connectivity_ip
+      type: list
+      description: IP list for this IP usage type.
+      default:
+      - 2001:1890:1001:218c::24:8
+      entry_schema:
+        type: string
+    cfed_volume_ids_1:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: cfed_volume_ids_1
+      type: json
+      description: CFED Volume.
+      
+    dmz_subnet_id:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: dmz_subnet_id
+      type: string
+      description: ID of the subnet associated with tag "dmz".
+      default: ef4874e2-2e6b-4165-84bd-cf75bcd1c474
+    sig_Sec_Grp:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: sig_Sec_Grp
+      type: string
+      description: UUID of the security group.
+      default: 1dd29b75-2240-49c4-8fd7-d0bf453c8e94
+    ssh_access_key:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: ssh_access_key
+      type: string
+      description: |
+        Optional SSH public key value for lifecycle management
+        administrative access.
+      default: ''
+    sig_cidr:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: sig_cidr
+      type: string
+      description: CIDR associated with tag "sig".
+      default: 12.121.107.32/27
+    local_dns_domain:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: local_dns_domain
+      type: string
+      description: Local DNS domain value.
+      default: tas02.ims.fs5000lab.com
+    dmz_net_id:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: dmz_net_id
+      type: string
+      description: ID of the network associated with tag "dmz".
+      default: 432868af-e8d0-42bf-953a-15b4e1d3a9b0
+      
+    gls_sigv6_ipmap_sideB_connectivity_ip:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: gls_sigv6_ipmap_sideB_connectivity_ip
+      type: list
+      description: IP list for this IP usage type.
+      default:
+      - 2001:1890:1001:218c::24:9
+      entry_schema:
+        type: string
+    system_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: system_name
+      type: string
+      description: System name used inside the VNF.
+      default: tas02
+    dmz_Sec_Grp:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: dmz_Sec_Grp
+      type: string
+      description: UUID of the security group.
+      default: 1dd29b75-2240-49c4-8fd7-d0bf453c8e94
+    time_zone:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: time_zone
+      type: string
+      description: Time zone used inside the VNF.
+      default: America/Chicago
+    gls_volume_ids_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: gls_volume_ids_0
+      type: json
+      description: GLS Volume.
+      
+    gls_volume_ids_1:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: gls_volume_ids_1
+      type: json
+      description: GLS Volume.
+      
+    oam_volume_ids_1:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: oam_volume_ids_1
+      type: json
+      description: OAM Volume.
+      
+    cfed_volume_count:
+      label: volume count
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: cfed_volume_count
+      type: float
+      description: number of CFED volumes needed
+      default: 2
+    oam_volume_ids_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: oam_volume_ids_0
+      type: json
+      description: OAM Volume.
+      
+    oam_management_v6_source:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: oam_management_v6_source
+      type: string
+      description: Name of the OAM IP parameter to use.
+      default: ''
+    v4_dns_server:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: v4_dns_server
+      type: string
+      description: |
+        (optional) IPV4 DNS server list.
+        It is passed as a string instead of a CDL because
+        of how it is handled internally.
+      default: 135.1.250.169/.,135.1.250.170/.
+    oam_management_v4_source:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: oam_management_v4_source
+      type: string
+      description: Name of the OAM IP parameter to use.
+      default: oam_dmz_ipmap_sideA_mi0_float_default
+    install_config:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: install_config
+      type: string
+      description: JSON formatted string of install config values.
+      default: ' "application_name": "5420_cts", "default_remote_dns_domain": "./default",
+        "default_remote_enum_domain": "e164.arpa/default", "naming_delimiter": "-",
+        "naming_parsing": "flexible", "naming_type": "flexible3", "other_remote_dns_domain":
+        "", "other_remote_enum_domain": "", "remote_query_only": "no", "snmp_community":
+        "public", "subnet_info": { "INTERNALnet0": { "interface_label": "int0", "redundancy_mode":
+        "iipm", "vlan_tag": ""}, "INTERNALnet1": { "interface_label": "int1", "redundancy_mode":
+        "iipm", "vlan_tag": ""}, "dmz": { "interface_label": "oam", "redundancy_mode":
+        "eipm_arpndp", "vlan_tag": "", "connectivity_address": "", "detect_multiplier":
+        "3", "desired_minimum_tx_interval": "300", "required_minimum_rx_interval":
+        "300"}, "sig": { "interface_label": "sig", "redundancy_mode": "eipm_arpndp",
+        "vlan_tag": "", "connectivity_address": "", "detect_multiplier": "3", "desired_minimum_tx_interval":
+        "300", "required_minimum_rx_interval": "300"}, ,"sigv6": { "interface_label":
+        "sig", "redundancy_mode": "eipm_arpndp", "vlan_tag": "", "connectivity_address":
+        "", "detect_multiplier": "3", "desired_minimum_tx_interval": "300", "required_minimum_rx_interval":
+        "300"}, }, "svc_counts": { "sns": "1", "cfed": "1", "cnfg": "1", "gls": "1",
+        "mi": "1", "gos": "1"}, "use_sbpr": "yes"'
+    gls_dmz_ipmap_sideA_0_float_default:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: gls_dmz_ipmap_sideA_0_float_default
+      type: list
+      description: IP list for this IP usage type.
+      default:
+      - 192.20.195.12
+      entry_schema:
+        type: string
+    oam_dmz_ipmap_sideB_mi0_fixed_default:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: oam_dmz_ipmap_sideB_mi0_fixed_default
+      type: list
+      description: IP list for this IP usage type.
+      default:
+      - 192.20.195.7
+      entry_schema:
+        type: string
+    dmz_cidr:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: dmz_cidr
+      type: string
+      description: CIDR associated with tag "dmz".
+      default: 192.20.195.0/24
+    sigv6_net_id:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: sigv6_net_id
+      type: string
+      description: ID of the network associated with tag "sigv6".
+      default: 7aa61674-a934-49ab-a5f9-879a5864ec18
+      
+    sigv6_default_gateway:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: sigv6_default_gateway
+      type: string
+      description: Default gateway IP address  associated with tag "sigv6".
+      default: 2001:1890:1001:218c::1
+    cloud_name_delimiter:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: cloud_name_delimiter
+      type: string
+      description: Separator for cloud resource naming.
+      default: '-'
+  node_templates:
+    Reserve_Port_gls_sigv6_floating_v6_ip_0:
+      type: org.openecomp.resource.cp.v2.extNeutronCP
+      properties:
+        replacement_policy: AUTO
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        fixed_ips:
+        - subnet:
+            get_input: sigv6_v6_subnet_id
+          ip_address:
+            get_input:
+            - gls_sigv6_ipmap_sideA_0_float_diam_gls
+            - 0
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        name: Reserve_Port_gls_sigv6_floating_v6_ip_0
+        network_role_tag: sigv6
+        network:
+          get_input: sigv6_net_id
+      capabilities:
+        port_mirroring:
+          properties:
+            connection_point:
+              nf_type: ''
+              nfc_type: ''
+              nf_naming_code: ''
+              nfc_naming_code: ''
+              network_role: ''
+              pps_capacity: ''
+    Reserve_Port_cfed_sigv6_floating_v6_ip_0:
+      type: org.openecomp.resource.cp.v2.extNeutronCP
+      properties:
+        replacement_policy: AUTO
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        fixed_ips:
+        - subnet:
+            get_input: sigv6_v6_subnet_id
+          ip_address:
+            get_input:
+            - cfed_sigv6_ipmap_sideA_0_float_published
+            - 1
+        - subnet:
+            get_input: sigv6_v6_subnet_id
+          ip_address:
+            get_input:
+            - cfed_sigv6_ipmap_sideA_0_float_published
+            - 0
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        name: Reserve_Port_cfed_sigv6_floating_v6_ip_0
+        network_role_tag: sigv6
+        network:
+          get_input: sigv6_net_id
+      capabilities:
+        port_mirroring:
+          properties:
+            connection_point:
+              nf_type: ''
+              nfc_type: ''
+              nf_naming_code: ''
+              nfc_naming_code: ''
+              network_role: ''
+              pps_capacity: ''
+    cfed_RRG_1:
+      type: org.openecomp.resource.abstract.nodes.heat.cfed
+      directives:
+      - substitutable
+      properties:
+        backup_file1:
+          get_attribute:
+          - FORMATXLATE
+          - backup_file1
+        vf_module_id:
+          get_input: vf_module_id
+        backup_file2:
+          get_attribute:
+          - FORMATXLATE
+          - backup_file2
+        cfed_flavor_name:
+          get_input:
+          - cfed_flavor_name
+        cfed_names:
+          get_input:
+          - cfed_names
+        cfed_sigv6_ipmap_sideB_0_fixed_dbaas:
+          get_input:
+          - cfed_sigv6_ipmap_sideB_0_fixed_dbaas
+        role: other
+        cfed_sig_ipmap_sideB_0_fixed_dbaas:
+          get_input:
+          - cfed_sig_ipmap_sideB_0_fixed_dbaas
+        vnf_name:
+          get_input: vnf_name
+        usage_info:
+          get_attribute:
+          - FORMATXLATE
+          - usage_info
+        config_info:
+          '0':
+            vnic_info:
+              '0':
+              - binding_type: normal
+                count: '0'
+                subnet_count: '1'
+                allowed_subnets:
+                - INTERNALnet0
+              - subnet: INTERNALnet0
+                label: connectivity_ip;subnet=INTERNALnet0
+              '1':
+              - binding_type: normal
+                count: '0'
+                subnet_count: '1'
+                allowed_subnets:
+                - INTERNALnet1
+              - subnet: INTERNALnet1
+                label: connectivity_ip;subnet=INTERNALnet1
+              '2':
+              - binding_type: normal
+                count: '4'
+                subnet_count: '2'
+                allowed_subnets:
+                - sig
+                - sigv6
+              - subnet: sig
+                label: servicetype=cfed-0;fixed;nitype=dbaas;subnet=sig
+              - subnet: sigv6
+                label: servicetype=cfed-0;fixed;nitype=dbaas;subnet=sigv6
+              - subnet: sig
+                label: servicetype=cfed-0;float;nitype=published;subnet=sig
+              - subnet: sigv6
+                label: servicetype=cfed-0;float;nitype=published;subnet=sigv6
+          '1':
+            vnic_info:
+              '0':
+              - binding_type: normal
+                count: '0'
+                subnet_count: '1'
+                allowed_subnets:
+                - INTERNALnet0
+              - subnet: INTERNALnet0
+                label: connectivity_ip;subnet=INTERNALnet0
+              '1':
+              - binding_type: normal
+                count: '0'
+                subnet_count: '1'
+                allowed_subnets:
+                - INTERNALnet1
+              - subnet: INTERNALnet1
+                label: connectivity_ip;subnet=INTERNALnet1
+              '2':
+              - binding_type: normal
+                count: '2'
+                subnet_count: '2'
+                allowed_subnets:
+                - sig
+                - sigv6
+              - subnet: sig
+                label: servicetype=cfed-0;fixed;nitype=dbaas;subnet=sig
+              - subnet: sigv6
+                label: servicetype=cfed-0;fixed;nitype=dbaas;subnet=sigv6
+          v6_static_routes: '{}'
+          v6_default_gateway: sigv6
+          vnic_count: 3
+          v4_static_routes: '{}'
+          v4_default_gateway: sig
+          poolinfo: '["cfed-0", "gos-1"]'
+        group_index:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+        sig_subnet_id:
+          get_input:
+          - sig_subnet_id
+        port_cfed_1_sig_port_2_mac_requirements:
+          mac_count_required:
+            is_required: false
+        ssh_private_key:
+          get_attribute:
+          - NOKIA_LCP_Base
+          - PrivateKey
+        vf_module_name:
+          get_input: vf_module_name
+        service_template_filter:
+          substitute_service_template: nest_cfed_bServiceTemplate.yaml
+          count:
+            get_attribute:
+            - FORMATXLATE
+            - vm_counts
+            - cfed
+        port_cfed_1_int_ctrl0_port_0_network_role_tag: int_ctrl0
+        port_cfed_1_int_ctrl1_port_1_mac_requirements:
+          mac_count_required:
+            is_required: false
+        vnf_id:
+          get_input: vnf_id
+        int_ctrl1_Sec_Grp:
+          get_attribute:
+          - NOKIA_LCP_Base
+          - OpenSec
+        lcm_keypair:
+          get_attribute:
+          - FORMATXLATE
+          - lcm_keypair
+        port_cfed_1_sig_port_2_network_role_tag: sig
+        current_group_count:
+          get_attribute:
+          - FORMATXLATE
+          - vm_counts
+          - cfed
+        availability_zone_1:
+          get_input: availability_zone_1
+        sig_Sec_Grp:
+          get_input:
+          - sig_Sec_Grp
+        int_ctrl0_Sec_Grp:
+          get_attribute:
+          - NOKIA_LCP_Base
+          - OpenSec
+        net_info_str:
+          get_attribute:
+          - NOKIA_LCP_Base
+          - NetInfoStr
+        total_pair_count:
+          get_attribute:
+          - NOKIA_LCP_Base
+          - TotalPairCount
+        ssh_access_key:
+          get_attribute:
+          - FORMATXLATE
+          - ssh_access_key
+        int_ctrl0_net_id:
+          get_attribute:
+          - NOKIA_LCP_Base
+          - IntNetInfo
+          - INTERNALnet0
+          - id
+        int_ctrl1_net_id:
+          get_attribute:
+          - NOKIA_LCP_Base
+          - IntNetInfo
+          - INTERNALnet1
+          - id
+        port_cfed_1_sig_port_2_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        cfed_image_name:
+          get_input:
+          - cfed_image_name
+        pair2idx:
+          '22':
+            '0': 44
+            '1': 45
+          '23':
+            '0': 46
+            '1': 47
+          '24':
+            '0': 48
+            '1': 49
+          '25':
+            '0': 50
+            '1': 51
+          '26':
+            '0': 52
+            '1': 53
+          '27':
+            '0': 54
+            '1': 55
+          '28':
+            '0': 56
+            '1': 57
+          '29':
+            '0': 58
+            '1': 59
+          '10':
+            '0': 20
+            '1': 21
+          '11':
+            '0': 22
+            '1': 23
+          '12':
+            '0': 24
+            '1': 25
+          '13':
+            '0': 26
+            '1': 27
+          '14':
+            '0': 28
+            '1': 29
+          '15':
+            '0': 30
+            '1': 31
+          '16':
+            '0': 32
+            '1': 33
+          '17':
+            '0': 34
+            '1': 35
+          '18':
+            '0': 36
+            '1': 37
+          '19':
+            '0': 38
+            '1': 39
+          '0':
+            '0': 0
+            '1': 1
+          '1':
+            '0': 2
+            '1': 3
+          '2':
+            '0': 4
+            '1': 5
+          '3':
+            '0': 6
+            '1': 7
+          '4':
+            '0': 8
+            '1': 9
+          '5':
+            '0': 10
+            '1': 11
+          '6':
+            '0': 12
+            '1': 13
+          '7':
+            '0': 14
+            '1': 15
+          '8':
+            '0': 16
+            '1': 17
+          '9':
+            '0': 18
+            '1': 19
+          '20':
+            '0': 40
+            '1': 41
+          '21':
+            '0': 42
+            '1': 43
+        ssh_public_key:
+          get_attribute:
+          - NOKIA_LCP_Base
+          - PublicKey
+        vm_role: cfed
+        port_cfed_1_int_ctrl0_port_0_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        port_cfed_1_int_ctrl1_port_1_network_role_tag: int_ctrl1
+        port_cfed_1_int_ctrl0_port_0_mac_requirements:
+          mac_count_required:
+            is_required: false
+        group_id: '4'
+        install_config:
+          get_attribute:
+          - FORMATXLATE
+          - install_config
+        cfed_volume_1:
+          get_input:
+          - cfed_volume_ids_1
+        sig_net_id:
+          get_input:
+          - sig_net_id
+        sigv6_v6_subnet_id:
+          get_input:
+          - sigv6_v6_subnet_id
+        group_tag: cfed
+        port_cfed_1_int_ctrl1_port_1_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        vf_module_index:
+          get_input: vf_module_index
+
+    cfed_RRG_0:
+      type: org.openecomp.resource.abstract.nodes.heat.cfed_1
+      directives:
+      - substitutable
+      properties:
+        cfed_flavor_name:
+          get_input:
+          - cfed_flavor_name
+        port_cfed_0_int_ctrl1_port_1_network_role_tag: int_ctrl1
+        usage_info:
+          get_attribute:
+          - FORMATXLATE
+          - usage_info
+        config_info:
+          '0':
+            vnic_info:
+              '0':
+              - binding_type: normal
+                count: '0'
+                subnet_count: '1'
+                allowed_subnets:
+                - INTERNALnet0
+              - subnet: INTERNALnet0
+                label: connectivity_ip;subnet=INTERNALnet0
+              '1':
+              - binding_type: normal
+                count: '0'
+                subnet_count: '1'
+                allowed_subnets:
+                - INTERNALnet1
+              - subnet: INTERNALnet1
+                label: connectivity_ip;subnet=INTERNALnet1
+              '2':
+              - binding_type: normal
+                count: '4'
+                subnet_count: '2'
+                allowed_subnets:
+                - sig
+                - sigv6
+              - subnet: sig
+                label: servicetype=cfed-0;fixed;nitype=dbaas;subnet=sig
+              - subnet: sigv6
+                label: servicetype=cfed-0;fixed;nitype=dbaas;subnet=sigv6
+              - subnet: sig
+                label: servicetype=cfed-0;float;nitype=published;subnet=sig
+              - subnet: sigv6
+                label: servicetype=cfed-0;float;nitype=published;subnet=sigv6
+          '1':
+            vnic_info:
+              '0':
+              - binding_type: normal
+                count: '0'
+                subnet_count: '1'
+                allowed_subnets:
+                - INTERNALnet0
+              - subnet: INTERNALnet0
+                label: connectivity_ip;subnet=INTERNALnet0
+              '1':
+              - binding_type: normal
+                count: '0'
+                subnet_count: '1'
+                allowed_subnets:
+                - INTERNALnet1
+              - subnet: INTERNALnet1
+                label: connectivity_ip;subnet=INTERNALnet1
+              '2':
+              - binding_type: normal
+                count: '2'
+                subnet_count: '2'
+                allowed_subnets:
+                - sig
+                - sigv6
+              - subnet: sig
+                label: servicetype=cfed-0;fixed;nitype=dbaas;subnet=sig
+              - subnet: sigv6
+                label: servicetype=cfed-0;fixed;nitype=dbaas;subnet=sigv6
+          v6_static_routes: '{}'
+          v6_default_gateway: sigv6
+          vnic_count: 3
+          v4_static_routes: '{}'
+          v4_default_gateway: sig
+          poolinfo: '["cfed-0", "gos-1"]'
+        group_index:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+        sig_subnet_id:
+          get_input:
+          - sig_subnet_id
+        ssh_private_key:
+          get_attribute:
+          - NOKIA_LCP_Base
+          - PrivateKey
+        service_template_filter:
+          substitute_service_template: nest_cfed_aServiceTemplate.yaml
+          count:
+            get_attribute:
+            - FORMATXLATE
+            - vm_counts
+            - cfed
+        port_cfed_0_sig_port_2_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        int_ctrl1_Sec_Grp:
+          get_attribute:
+          - NOKIA_LCP_Base
+          - OpenSec
+        current_group_count:
+          get_attribute:
+          - FORMATXLATE
+          - vm_counts
+          - cfed
+        port_cfed_0_int_ctrl0_port_0_mac_requirements:
+          mac_count_required:
+            is_required: false
+        total_pair_count:
+          get_attribute:
+          - NOKIA_LCP_Base
+          - TotalPairCount
+        cfed_sig_ipmap_sideA_0_float_published:
+          get_input:
+          - cfed_sig_ipmap_sideA_0_float_published
+        int_ctrl1_net_id:
+          get_attribute:
+          - NOKIA_LCP_Base
+          - IntNetInfo
+          - INTERNALnet1
+          - id
+        cfed_sigv6_ipmap_sideA_0_fixed_dbaas:
+          get_input:
+          - cfed_sigv6_ipmap_sideA_0_fixed_dbaas
+        cfed_image_name:
+          get_input:
+          - cfed_image_name
+        port_cfed_0_int_ctrl0_port_0_network_role_tag: int_ctrl0
+        cfed_sigv6_ipmap_sideA_0_float_published:
+          get_input:
+          - cfed_sigv6_ipmap_sideA_0_float_published
+        cfed_sig_ipmap_sideA_0_fixed_dbaas:
+          get_input:
+          - cfed_sig_ipmap_sideA_0_fixed_dbaas
+        ssh_public_key:
+          get_attribute:
+          - NOKIA_LCP_Base
+          - PublicKey
+        port_cfed_0_int_ctrl0_port_0_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        sig_net_id:
+          get_input:
+          - sig_net_id
+        sigv6_v6_subnet_id:
+          get_input:
+          - sigv6_v6_subnet_id
+        port_cfed_0_int_ctrl1_port_1_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        vf_module_index:
+          get_input: vf_module_index
+        port_cfed_0_int_ctrl1_port_1_mac_requirements:
+          mac_count_required:
+            is_required: false
+        backup_file1:
+          get_attribute:
+          - FORMATXLATE
+          - backup_file1
+        vf_module_id:
+          get_input: vf_module_id
+        backup_file2:
+          get_attribute:
+          - FORMATXLATE
+          - backup_file2
+        port_cfed_0_sig_port_2_mac_requirements:
+          mac_count_required:
+            is_required: false
+        cfed_names:
+          get_input:
+          - cfed_names
+        role: other
+        vnf_name:
+          get_input: vnf_name
+        vf_module_name:
+          get_input: vf_module_name
+        vnf_id:
+          get_input: vnf_id
+        lcm_keypair:
+          get_attribute:
+          - FORMATXLATE
+          - lcm_keypair
+        availability_zone_0:
+          get_input: availability_zone_0
+        sig_Sec_Grp:
+          get_input:
+          - sig_Sec_Grp
+        int_ctrl0_Sec_Grp:
+          get_attribute:
+          - NOKIA_LCP_Base
+          - OpenSec
+        net_info_str:
+          get_attribute:
+          - NOKIA_LCP_Base
+          - NetInfoStr
+        ssh_access_key:
+          get_attribute:
+          - FORMATXLATE
+          - ssh_access_key
+        int_ctrl0_net_id:
+          get_attribute:
+          - NOKIA_LCP_Base
+          - IntNetInfo
+          - INTERNALnet0
+          - id
+        port_cfed_0_sig_port_2_network_role_tag: sig
+        pair2idx:
+          '22':
+            '0': 44
+            '1': 45
+          '23':
+            '0': 46
+            '1': 47
+          '24':
+            '0': 48
+            '1': 49
+          '25':
+            '0': 50
+            '1': 51
+          '26':
+            '0': 52
+            '1': 53
+          '27':
+            '0': 54
+            '1': 55
+          '28':
+            '0': 56
+            '1': 57
+          '29':
+            '0': 58
+            '1': 59
+          '10':
+            '0': 20
+            '1': 21
+          '11':
+            '0': 22
+            '1': 23
+          '12':
+            '0': 24
+            '1': 25
+          '13':
+            '0': 26
+            '1': 27
+          '14':
+            '0': 28
+            '1': 29
+          '15':
+            '0': 30
+            '1': 31
+          '16':
+            '0': 32
+            '1': 33
+          '17':
+            '0': 34
+            '1': 35
+          '18':
+            '0': 36
+            '1': 37
+          '19':
+            '0': 38
+            '1': 39
+          '0':
+            '0': 0
+            '1': 1
+          '1':
+            '0': 2
+            '1': 3
+          '2':
+            '0': 4
+            '1': 5
+          '3':
+            '0': 6
+            '1': 7
+          '4':
+            '0': 8
+            '1': 9
+          '5':
+            '0': 10
+            '1': 11
+          '6':
+            '0': 12
+            '1': 13
+          '7':
+            '0': 14
+            '1': 15
+          '8':
+            '0': 16
+            '1': 17
+          '9':
+            '0': 18
+            '1': 19
+          '20':
+            '0': 40
+            '1': 41
+          '21':
+            '0': 42
+            '1': 43
+        vm_role: cfed
+        group_id: '4'
+        install_config:
+          get_attribute:
+          - FORMATXLATE
+          - install_config
+        cfed_volume_0:
+          get_input:
+          - cfed_volume_ids_0
+        group_tag: cfed
+
+    cfed_volume_RRG:
+      type: org.openecomp.resource.abstract.nodes.heat.base_att_cfed_nested_volume
+      directives:
+      - substitutable
+      properties:
+        service_template_filter:
+          substitute_service_template: base_att_cfed_nested_volumeServiceTemplate.yaml
+          count:
+            get_input: cfed_volume_count
+          mandatory: false
+        size:
+          get_input: storage_size
+        index:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+    Reserve_Port_cfed_sig_floating_ip_0:
+      type: org.openecomp.resource.cp.v2.extNeutronCP
+      properties:
+        replacement_policy: AUTO
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        fixed_ips:
+        - subnet:
+            get_input: sig_subnet_id
+          ip_address:
+            get_input:
+            - cfed_sig_ipmap_sideA_0_float_published
+            - 1
+        - subnet:
+            get_input: sig_subnet_id
+          ip_address:
+            get_input:
+            - cfed_sig_ipmap_sideA_0_float_published
+            - 0
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        name: Reserve_Port_cfed_sig_floating_ip_0
+        network_role_tag: sig
+        network:
+          get_input: sig_net_id
+      capabilities:
+        port_mirroring:
+          properties:
+            connection_point:
+              nf_type: ''
+              nfc_type: ''
+              nf_naming_code: ''
+              nfc_naming_code: ''
+              network_role: ''
+              pps_capacity: ''
+
+    NOKIA_LCP_Base:
+      type: org.openecomp.resource.abstract.nodes.heat.nest_common
+      directives:
+      - substitutable
+      properties:
+        total_vm_pairs:
+          get_attribute:
+          - FORMATXLATE
+          - total_vm_pairs
+        service_template_filter:
+          substitute_service_template: nest_commonServiceTemplate.yaml
+        ext_net_list:
+        - sigv6
+        - sig
+        - dmz
+        int_net_count: 2
+        ext_net_info:
+          get_attribute:
+          - FORMATXLATE
+          - ext_net_info
+        vnf_name:
+          get_input: vnf_name
+        int_net1_label:
+          '1': ''
+          '2': INTERNALnet1
+
+  groups:
+    base_att_volume_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/base_att_volume.yaml
+        description: |
+          AT&T compliant HOT file.
+      members:
+      - cfed_volume_RRG
+      - gls_volume_RRG
+      - oam_volume_RRG
+    base_att_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/base_att.yaml
+        description: |
+          AT&T compliant HOT file.
+      members:
+      - Reserve_Port_cfed_sigv6_floating_v6_ip_0
+      - Reserve_Port_cfed_sig_floating_ip_0
+      - cfed_RRG_1
+      - NOKIA_LCP_Base
+      - cfed_RRG_0
+
+  outputs:
+    cfed_volume_ids_0:
+      description: CFED Volume UUID
+      value:
+        get_attribute:
+        - cfed_volume_RRG
+        - cfed_volume_0
+    cfed_volume_ids_1:
+      description: CFED Volume UUID
+      value:
+        get_attribute:
+        - cfed_volume_RRG
+        - cfed_volume_1
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichNfcNamingFunction/in/nest_cfed_aServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichNfcNamingFunction/in/nest_cfed_aServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..d4cbd94
--- /dev/null
@@ -0,0 +1,1188 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: nest_cfed_a
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+- openecomp_index:
+    file: openecomp/_index.yml
+node_types:
+  org.openecomp.resource.vfc.compute.nodes.heat.cfed:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+  inputs:
+    cfed_flavor_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: VM flavor name.
+    port_cfed_0_sig_port_2_subnetpoolid:
+      type: string
+      required: true
+    port_cfed_0_int_ctrl1_port_1_network_role:
+      type: string
+      required: true
+    port_cfed_0_int_ctrl1_port_1_network_role_tag:
+      type: string
+      required: true
+    usage_info:
+      hidden: false
+      immutable: false
+      type: json
+      description: |
+        Per-VM/vNIC data for members of this elastic group.
+    config_info:
+      hidden: false
+      immutable: false
+      type: json
+      description: Service configuration and network layout.
+    group_index:
+      hidden: false
+      immutable: false
+      type: float
+      description: Index of the VM pair within the elastic group.
+      constraints:
+      - in_range:
+        - 0
+        - null
+    sig_subnet_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: UUID of the subnet.
+    workload_context:
+      label: Workload Context
+      hidden: false
+      immutable: false
+      type: string
+      description: Workload context for this VNF.
+    ssh_private_key:
+      hidden: true
+      immutable: false
+      type: string
+      description: Private SSH key for VM to VM communication in this system.
+    port_cfed_0_sig_port_2_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_cfed_0_int_ctrl0_port_0_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    port_cfed_0_sig_port_2_order:
+      type: integer
+      required: true
+    port_cfed_0_sig_port_2_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    int_ctrl1_Sec_Grp:
+      hidden: false
+      immutable: false
+      type: string
+      description: Internal network 0 security group UUID.
+    current_group_count:
+      hidden: false
+      immutable: false
+      type: string
+      description: |
+        Current VM pair count within the elastic group.
+    port_cfed_0_int_ctrl0_port_0_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    total_pair_count:
+      hidden: false
+      immutable: false
+      type: string
+      description: |
+        This string will evaluate to the number of PairGroups in the VNF.
+    cfed_sig_ipmap_sideA_0_float_published:
+      hidden: false
+      immutable: false
+      type: list
+      description: VM/subnet/usage IP address list. Keyed by group index.
+      entry_schema:
+        type: string
+    port_cfed_0_sig_port_2_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    int_ctrl1_net_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: Internal network 1.
+    cfed_sigv6_ipmap_sideA_0_fixed_dbaas:
+      hidden: false
+      immutable: false
+      type: list
+      description: VM/subnet/usage IP address list. Keyed by group index.
+      entry_schema:
+        type: string
+    cfed_image_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: VM image name.
+    port_cfed_0_int_ctrl0_port_0_network_role_tag:
+      type: string
+      required: true
+    port_cfed_0_int_ctrl0_port_0_related_networks:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+    cfed_sigv6_ipmap_sideA_0_float_published:
+      hidden: false
+      immutable: false
+      type: list
+      description: VM/subnet/usage IP address list. Keyed by group index.
+      entry_schema:
+        type: string
+    cfed_sig_ipmap_sideA_0_fixed_dbaas:
+      hidden: false
+      immutable: false
+      type: list
+      description: VM/subnet/usage IP address list. Keyed by group index.
+      entry_schema:
+        type: string
+    port_cfed_0_int_ctrl0_port_0_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    ssh_public_key:
+      hidden: false
+      immutable: false
+      type: string
+      description: Public SSH key for VM to VM communication in this system.
+    port_cfed_0_int_ctrl0_port_0_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_cfed_0_int_ctrl1_port_1_order:
+      type: integer
+      required: true
+    sig_net_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: UUID of the network.
+    sigv6_v6_subnet_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: UUID of the subnet.
+    port_cfed_0_int_ctrl1_port_1_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    vf_module_index:
+      hidden: false
+      immutable: false
+      type: float
+      description: Unique index for this VNF Module instance.
+    port_cfed_0_int_ctrl1_port_1_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    backup_file1:
+      hidden: false
+      immutable: false
+      type: string
+      description: |
+        <cURL path>/<backup file>
+        This is only used for restore (aka "disaster recovery") and
+        only referenced on OAM-A.
+    vf_module_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: Unique ID for this VNF module instance.
+    backup_file2:
+      hidden: false
+      immutable: false
+      type: string
+      description: |
+        <cURL path>/<backup file>
+        This is only used for restore (aka "disaster recovery") and
+        only referenced on OAM-A.
+    port_cfed_0_sig_port_2_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    cfed_names:
+      hidden: false
+      immutable: false
+      type: list
+      description: VM name list.
+      entry_schema:
+        type: string
+    role:
+      hidden: false
+      immutable: false
+      type: string
+      description: VM role during LCM activities.
+      constraints:
+      - valid_values:
+        - oam
+        - other
+    port_cfed_0_int_ctrl1_port_1_related_networks:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+    vnf_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: Unique name for this VNF instance.
+    vf_module_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: Unique name for this VNF module instance.
+    port_cfed_0_int_ctrl0_port_0_order:
+      type: integer
+      required: true
+    vnf_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: Unique ID for this VNF instance.
+    port_cfed_0_int_ctrl0_port_0_network_role:
+      type: string
+      required: true
+    lcm_keypair:
+      hidden: false
+      immutable: false
+      type: string
+      description: Lifecycle management access key pair.
+      constraints: [
+        ]
+    port_cfed_0_int_ctrl1_port_1_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    availability_zone_0:
+      hidden: false
+      immutable: false
+      type: string
+      description: VM availability zone.
+    sig_Sec_Grp:
+      hidden: false
+      immutable: false
+      type: string
+      description: UUID of the security group.
+    int_ctrl0_Sec_Grp:
+      hidden: false
+      immutable: false
+      type: string
+      description: Internal network 0 security group UUID.
+    net_info_str:
+      hidden: false
+      immutable: false
+      type: string
+      description: |
+        JSON formatted string with all network info.
+        This is redundant with int_net_info and ext_net_info except
+        in Kilo there is no way to convert json to string for
+        output as a personality file.
+    ssh_access_key:
+      hidden: false
+      immutable: false
+      type: string
+      description: Public SSH key for external access.
+    int_ctrl0_net_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: Internal network 0.
+    port_cfed_0_sig_port_2_network_role_tag:
+      type: string
+      required: true
+    port_cfed_0_sig_port_2_related_networks:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+    environment_context:
+      label: Environment Context
+      hidden: false
+      immutable: false
+      type: string
+      description: Environment context for this VNF.
+    port_cfed_0_int_ctrl0_port_0_subnetpoolid:
+      type: string
+      required: true
+    pair2idx:
+      hidden: false
+      immutable: false
+      type: json
+      description: Map group index to VMtype index.
+    vm_role:
+      hidden: false
+      immutable: false
+      type: string
+      description: Unique role for these VMs.
+    port_cfed_0_int_ctrl1_port_1_subnetpoolid:
+      type: string
+      required: true
+    group_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: ID number of the elastic group this pair is a member of.
+    install_config:
+      hidden: false
+      immutable: false
+      type: string
+      description: JSON formatted string of install config values.
+    cfed_volume_0:
+      hidden: false
+      immutable: false
+      type: json
+      description: CFED Volume.
+    group_tag:
+      hidden: false
+      immutable: false
+      type: string
+      description: Key into "usage_info" for members of this elastic group.
+    port_cfed_0_sig_port_2_network_role:
+      type: string
+      required: true
+    port_cfed_0_int_ctrl1_port_1_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+  node_templates:
+    cfed_0_sig_port_2:
+      type: org.openecomp.resource.cp.v2.extNeutronCP
+      properties:
+        subnetpoolid:
+          get_input: port_cfed_0_sig_port_2_subnetpoolid
+        allowed_address_pairs:
+        - ip_address:
+            str_replace:
+              template: $ip$prefixsz
+              params:
+                $ip:
+                  get_input:
+                  - cfed_sig_ipmap_sideA_0_float_published
+                  - get_input: group_index
+                $prefixsz: /32
+        - ip_address:
+            str_replace:
+              template: $ip$prefixsz
+              params:
+                $ip:
+                  get_input:
+                  - cfed_sigv6_ipmap_sideA_0_float_published
+                  - get_input: group_index
+                $prefixsz: /128
+        binding:vnic_type: normal
+        related_networks:
+          get_input: port_cfed_0_sig_port_2_related_networks
+        network:
+          get_input: sig_net_id
+        replacement_policy: AUTO
+        ip_requirements:
+          get_input: port_cfed_0_sig_port_2_ip_requirements
+        security_groups:
+        - get_input: sig_Sec_Grp
+        network_role:
+          get_input: port_cfed_0_sig_port_2_network_role
+        fixed_ips:
+        - subnet:
+            get_input: sig_subnet_id
+          ip_address:
+            get_input:
+            - cfed_sig_ipmap_sideA_0_fixed_dbaas
+            - get_input: group_index
+        - subnet:
+            get_input: sigv6_v6_subnet_id
+          ip_address:
+            get_input:
+            - cfed_sigv6_ipmap_sideA_0_fixed_dbaas
+            - get_input: group_index
+        mac_requirements:
+          get_input: port_cfed_0_sig_port_2_mac_requirements
+        subinterface_indicator: false
+        name:
+          str_replace:
+            template: $vnf_name_cfed_0_sig_port_2
+            params:
+              $vnf_name:
+                get_input: vnf_name
+        exCP_naming:
+          get_input: port_cfed_0_sig_port_2_exCP_naming
+        vlan_requirements:
+          get_input: port_cfed_0_sig_port_2_vlan_requirements
+        network_role_tag:
+          get_input: port_cfed_0_sig_port_2_network_role_tag
+        order:
+          get_input: port_cfed_0_sig_port_2_order
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: cfed_server_0
+          relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        port_mirroring:
+          properties:
+            connection_point:
+              nf_type: ''
+              nfc_type: ''
+              nf_naming_code: ''
+              nfc_naming_code: cfed_server_0
+              network_role:
+                get_input: port_cfed_0_sig_port_2_network_role
+              pps_capacity: ''
+    cfed_0_int_ctrl0_port_0:
+      type: org.openecomp.resource.cp.v2.extNeutronCP
+      properties:
+        subnetpoolid:
+          get_input: port_cfed_0_int_ctrl0_port_0_subnetpoolid
+        allowed_address_pairs: [
+          ]
+        binding:vnic_type: normal
+        related_networks:
+          get_input: port_cfed_0_int_ctrl0_port_0_related_networks
+        network:
+          get_input: int_ctrl0_net_id
+        replacement_policy: AUTO
+        ip_requirements:
+          get_input: port_cfed_0_int_ctrl0_port_0_ip_requirements
+        security_groups:
+        - get_input: int_ctrl0_Sec_Grp
+        network_role:
+          get_input: port_cfed_0_int_ctrl0_port_0_network_role
+        fixed_ips: [
+          ]
+        mac_requirements:
+          get_input: port_cfed_0_int_ctrl0_port_0_mac_requirements
+        subinterface_indicator: false
+        name:
+          str_replace:
+            template: $vnf_name_cfed_0_int_ctrl0_port_0
+            params:
+              $vnf_name:
+                get_input: vnf_name
+        exCP_naming:
+          get_input: port_cfed_0_int_ctrl0_port_0_exCP_naming
+        vlan_requirements:
+          get_input: port_cfed_0_int_ctrl0_port_0_vlan_requirements
+        network_role_tag:
+          get_input: port_cfed_0_int_ctrl0_port_0_network_role_tag
+        order:
+          get_input: port_cfed_0_int_ctrl0_port_0_order
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: cfed_server_0
+          relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        port_mirroring:
+          properties:
+            connection_point:
+              nf_type: ''
+              nfc_type: ''
+              nf_naming_code: ''
+              nfc_naming_code: cfed_server_0
+              network_role:
+                get_input: port_cfed_0_int_ctrl0_port_0_network_role
+              pps_capacity: ''
+    cfed_server_0:
+      type: org.openecomp.resource.vfc.compute.nodes.heat.cfed
+      properties:
+        flavor:
+          get_input: cfed_flavor_name
+        key_name:
+          get_input: lcm_keypair
+        availability_zone:
+          get_input: availability_zone_0
+        image:
+          get_input: cfed_image_name
+        image_update_policy: REBUILD
+        metadata:
+          backup_file1:
+            get_input: backup_file1
+          total_pair_count:
+            get_input: total_pair_count
+          vf_module_id:
+            get_input: vf_module_id
+          backup_file2:
+            get_input: backup_file2
+          image:
+            get_input: cfed_image_name
+          member_index: '0'
+          certificate: ''
+          vnf_name:
+            get_input: vnf_name
+          created_at: now
+          environment_context:
+            get_input: environment_context
+          group_type: pair
+          group_index:
+            get_input: group_index
+          workload_context:
+            get_input: workload_context
+          vf_module_name:
+            get_input: vf_module_name
+          default_action: install
+          flavor:
+            get_input: cfed_flavor_name
+          vm_role:
+            get_input: vm_role
+          side_action:
+            get_input:
+            - usage_info
+            - defaults
+            - action
+            - '0'
+          group_id:
+            get_input: group_id
+          vnf_id:
+            get_input: vnf_id
+          current_group_count:
+            get_input: current_group_count
+          action: install
+          vf_module_index:
+            get_input: vf_module_index
+        config_drive: true
+        personality:
+          /storage/cloud/discover/GlobalConfig.json:
+            str_replace:
+              template: ' { "v4_dns_server": "$v4dns", "v6_dns_server": "$v6dns",
+                "v4_enum_server": "$v4enum", "v6_enum_server": "$v6enum", "v4_ntp_server":
+                "$v4ntp", "v6_ntp_server": "$v6ntp", "time_zone": "$time_zone", "system_name":
+                "$sysname", "system_prefix": "$sysprefix", "license_reference": "$license_ref",
+                "local_dns_domain": "$local_dns", "local_enum_domain": "$local_enum",
+                $cfg } '
+              params:
+                $v4dns:
+                  get_input:
+                  - usage_info
+                  - v4_dns_server
+                $v6enum:
+                  get_input:
+                  - usage_info
+                  - v6_enum_serve
+                $v6ntp:
+                  get_input:
+                  - usage_info
+                  - v6_ntp_server
+                $v6dns:
+                  get_input:
+                  - usage_info
+                  - v6_dns_server
+                $v4enum:
+                  get_input:
+                  - usage_info
+                  - v4_enum_server
+                $sysname:
+                  get_input:
+                  - usage_info
+                  - system_name
+                $local_enum:
+                  get_input:
+                  - usage_info
+                  - local_enum_domain
+                $v4ntp:
+                  get_input:
+                  - usage_info
+                  - v4_ntp_server
+                $cfg:
+                  get_input: install_config
+                $local_dns:
+                  get_input:
+                  - usage_info
+                  - local_dns_domain
+                $sysprefix:
+                  get_input:
+                  - usage_info
+                  - system_prefix
+                $license_ref:
+                  get_input:
+                  - usage_info
+                  - license_reference
+                $time_zone:
+                  get_input:
+                  - usage_info
+                  - time_zone
+          /storage/cloud/.ssh/SSHpubkey:
+            get_input: ssh_public_key
+          /storage/cloud/CLDsetup_data.json:
+            str_replace:
+              template: ' { "drbd_uuid": "", "int_vlan_id": "$int_vlan_id", "random":
+                "$random", "SSHpubkeyFile": "/storage/cloud/.ssh/SSHpubkey", "SSHprivkeyFile":
+                "/storage/cloud/.ssh/SSHprivkey", "SSHaccessKey": "$acckey", "stk":
+                "$stk", "uuid_storage": "$uuid_storage" }'
+              params:
+                $random: UNSUPPORTED_RESOURCE_cfed_RandomA
+                $stk:
+                  get_input:
+                  - usage_info
+                  - stack
+                $uuid_storage:
+                  get_input:
+                  - cfed_volume_0
+                  - get_attribute:
+                    - cfed_mapidx_0
+                    - idx0
+                $acckey:
+                  get_input: ssh_access_key
+                $int_vlan_id:
+                  get_input:
+                  - usage_info
+                  - int_vlan_id
+          /storage/cloud/discover/VMinfo.json:
+            str_replace:
+              template: ' { "vm_suffix": "$vmname", "service_config": $servcfg, "v4_default_gateway":
+                "$v4gateway", "v6_default_gateway": "$v6gateway", "v4_static_routes":
+                $v4static_routes, "v6_static_routes": $v6static_routes, "IPinfo":
+                [$ipinfo], "Netinfo": $netinfo } '
+              params:
+                $ipinfo:
+                  str_replace:
+                    template: '{"count": "$ip_count00", "binding_type": "$btype00",
+                      "mac_address": "$mac00", "assigned_ips": [$assgip00], "label2info":
+                      [$l2info00]} ,{"count": "$ip_count01", "binding_type": "$btype01",
+                      "mac_address": "$mac01", "assigned_ips": [$assgip01], "label2info":
+                      [$l2info01]} ,{"count": "$ip_count02", "binding_type": "$btype02",
+                      "mac_address": "$mac02", "assigned_ips": [$assgip02], "label2info":
+                      [$l2info02]} '
+                    params:
+                      $btype00: normal
+                      $btype01: normal
+                      $btype02: normal
+                      $assgip00:
+                        list_join:
+                        - ','
+                        - - list_join:
+                            - ''
+                            - - '"'
+                              - get_attribute:
+                                - cfed_0_int_ctrl0_port_0
+                                - fixed_ips
+                                - 0
+                                - ip_address
+                              - '"'
+                      $assgip01:
+                        list_join:
+                        - ','
+                        - - list_join:
+                            - ''
+                            - - '"'
+                              - get_attribute:
+                                - cfed_0_int_ctrl1_port_1
+                                - fixed_ips
+                                - 0
+                                - ip_address
+                              - '"'
+                      $assgip02:
+                        list_join:
+                        - ','
+                        - - list_join:
+                            - ''
+                            - - '"'
+                              - get_attribute:
+                                - cfed_0_sig_port_2
+                                - fixed_ips
+                                - 0
+                                - ip_address
+                              - '"'
+                          - list_join:
+                            - ''
+                            - - '"'
+                              - get_attribute:
+                                - cfed_0_sig_port_2
+                                - fixed_ips
+                                - 1
+                                - ip_address
+                              - '"'
+                          - list_join:
+                            - ''
+                            - - '"'
+                              - get_attribute:
+                                - cfed_0_sig_port_2
+                                - fixed_ips
+                                - 2
+                                - ip_address
+                              - '"'
+                          - list_join:
+                            - ''
+                            - - '"'
+                              - get_attribute:
+                                - cfed_0_sig_port_2
+                                - fixed_ips
+                                - 3
+                                - ip_address
+                              - '"'
+                      $mac01:
+                        get_attribute:
+                        - cfed_0_int_ctrl1_port_1
+                        - mac_address
+                      $mac02:
+                        get_attribute:
+                        - cfed_0_sig_port_2
+                        - mac_address
+                      $mac00:
+                        get_attribute:
+                        - cfed_0_int_ctrl0_port_0
+                        - mac_address
+                      $l2info01:
+                        str_replace:
+                          template: '{"label": "connectivity_ip", "subnet": "INTERNALnet1",
+                            "ip": "$ip00"}'
+                          params:
+                            $ip00: ''
+                      $l2info00:
+                        str_replace:
+                          template: '{"label": "connectivity_ip", "subnet": "INTERNALnet0",
+                            "ip": "$ip00"}'
+                          params:
+                            $ip00: ''
+                      $ip_count00: 0
+                      $l2info02:
+                        str_replace:
+                          template: '{"label": "servicetype=cfed-0;fixed;nitype=dbaas;subnet=sig",
+                            "subnet": "sig", "ip": "$ip00"},{"label": "servicetype=cfed-0;fixed;nitype=dbaas;subnet=sigv6",
+                            "subnet": "sigv6", "ip": "$ip01"},{"label": "servicetype=cfed-0;float;nitype=published;subnet=sig",
+                            "subnet": "sig", "ip": "$ip02"},{"label": "servicetype=cfed-0;float;nitype=published;subnet=sigv6",
+                            "subnet": "sigv6", "ip": "$ip03"}'
+                          params:
+                            $ip01:
+                              get_input:
+                              - cfed_sigv6_ipmap_sideA_0_fixed_dbaas
+                              - get_input: group_index
+                            $ip02:
+                              get_input:
+                              - cfed_sig_ipmap_sideA_0_float_published
+                              - get_input: group_index
+                            $ip03:
+                              get_input:
+                              - cfed_sigv6_ipmap_sideA_0_float_published
+                              - get_input: group_index
+                            $ip00:
+                              get_input:
+                              - cfed_sig_ipmap_sideA_0_fixed_dbaas
+                              - get_input: group_index
+                      $ip_count01: 0
+                      $ip_count02: 4
+                $netinfo:
+                  get_input: net_info_str
+                $v4gateway:
+                  get_input:
+                  - config_info
+                  - v4_default_gateway
+                $servcfg:
+                  get_input:
+                  - config_info
+                  - poolinfo
+                $v4static_routes:
+                  get_input:
+                  - config_info
+                  - v4_static_routes
+                $v6gateway:
+                  get_input:
+                  - config_info
+                  - v6_default_gateway
+                $vmname:
+                  get_input:
+                  - cfed_names
+                  - get_attribute:
+                    - cfed_mapidx_0
+                    - idx0
+                $v6static_routes:
+                  get_input:
+                  - config_info
+                  - v6_static_routes
+          /storage/cloud/.ssh/SSHprivkey:
+            get_input: ssh_private_key
+        name:
+          get_input:
+          - cfed_names
+          - get_attribute:
+            - cfed_mapidx_0
+            - idx0
+    cfed_0_int_ctrl1_port_1:
+      type: org.openecomp.resource.cp.v2.extNeutronCP
+      properties:
+        subnetpoolid:
+          get_input: port_cfed_0_int_ctrl1_port_1_subnetpoolid
+        allowed_address_pairs: [
+          ]
+        binding:vnic_type: normal
+        related_networks:
+          get_input: port_cfed_0_int_ctrl1_port_1_related_networks
+        network:
+          get_input: int_ctrl1_net_id
+        replacement_policy: AUTO
+        ip_requirements:
+          get_input: port_cfed_0_int_ctrl1_port_1_ip_requirements
+        security_groups:
+        - get_input: int_ctrl1_Sec_Grp
+        network_role:
+          get_input: port_cfed_0_int_ctrl1_port_1_network_role
+        fixed_ips: [
+          ]
+        mac_requirements:
+          get_input: port_cfed_0_int_ctrl1_port_1_mac_requirements
+        subinterface_indicator: false
+        name:
+          str_replace:
+            template: $vnf_name_cfed_0_int_ctrl1_port_1
+            params:
+              $vnf_name:
+                get_input: vnf_name
+        exCP_naming:
+          get_input: port_cfed_0_int_ctrl1_port_1_exCP_naming
+        vlan_requirements:
+          get_input: port_cfed_0_int_ctrl1_port_1_vlan_requirements
+        network_role_tag:
+          get_input: port_cfed_0_int_ctrl1_port_1_network_role_tag
+        order:
+          get_input: port_cfed_0_int_ctrl1_port_1_order
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: cfed_server_0
+          relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        port_mirroring:
+          properties:
+            connection_point:
+              nf_type: ''
+              nfc_type: ''
+              nf_naming_code: ''
+              nfc_naming_code: cfed_server_0
+              network_role:
+                get_input: port_cfed_0_int_ctrl1_port_1_network_role
+              pps_capacity: ''
+  groups:
+    nest_cfed_a_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/nest_cfed_a.yaml
+        description: Generate resources for a pair of 'cfed' VMs. ...
+      members:
+      - cfed_0_sig_port_2
+      - cfed_0_int_ctrl0_port_0
+      - cfed_server_0
+      - cfed_0_int_ctrl1_port_1
+  outputs:
+    Version:
+      description: |
+        Template file version number. This should be updated
+        each time a non-comment change is made to this file.
+      value: K1
+    VMA-EXT_IPS:
+      description: IP addresses assigned to the first external network.
+      value:
+      - list_join:
+        - ''
+        - - '"'
+          - get_attr:
+            - cfed_0_sig_port_2
+            - fixed_ips
+            - 0
+            - ip_address
+          - '"'
+      - list_join:
+        - ''
+        - - '"'
+          - get_attr:
+            - cfed_0_sig_port_2
+            - fixed_ips
+            - 1
+            - ip_address
+          - '"'
+      - list_join:
+        - ''
+        - - '"'
+          - get_attr:
+            - cfed_0_sig_port_2
+            - fixed_ips
+            - 2
+            - ip_address
+          - '"'
+      - list_join:
+        - ''
+        - - '"'
+          - get_attr:
+            - cfed_0_sig_port_2
+            - fixed_ips
+            - 3
+            - ip_address
+          - '"'
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.heat.cfed_1
+    capabilities:
+      memory_cfed_server_0:
+      - cfed_server_0
+      - memory
+      network.incoming.bytes.rate_cfed_0_int_ctrl1_port_1:
+      - cfed_0_int_ctrl1_port_1
+      - network.incoming.bytes.rate
+      disk.device.iops_cfed_server_0:
+      - cfed_server_0
+      - disk.device.iops
+      attachment_cfed_0_int_ctrl0_port_0:
+      - cfed_0_int_ctrl0_port_0
+      - attachment
+      network.incoming.bytes.rate_cfed_0_int_ctrl0_port_0:
+      - cfed_0_int_ctrl0_port_0
+      - network.incoming.bytes.rate
+      attachment_cfed_0_int_ctrl1_port_1:
+      - cfed_0_int_ctrl1_port_1
+      - attachment
+      feature_cfed_0_sig_port_2:
+      - cfed_0_sig_port_2
+      - feature
+      disk.write.bytes_cfed_server_0:
+      - cfed_server_0
+      - disk.write.bytes
+      network.incoming.bytes_cfed_0_sig_port_2:
+      - cfed_0_sig_port_2
+      - network.incoming.bytes
+      network.outgoing.packets.rate_cfed_0_int_ctrl1_port_1:
+      - cfed_0_int_ctrl1_port_1
+      - network.outgoing.packets.rate
+      disk.write.requests_cfed_server_0:
+      - cfed_server_0
+      - disk.write.requests
+      network.outgoing.packets.rate_cfed_0_int_ctrl0_port_0:
+      - cfed_0_int_ctrl0_port_0
+      - network.outgoing.packets.rate
+      disk.device.read.requests.rate_cfed_server_0:
+      - cfed_server_0
+      - disk.device.read.requests.rate
+      network.incoming.bytes_cfed_0_int_ctrl1_port_1:
+      - cfed_0_int_ctrl1_port_1
+      - network.incoming.bytes
+      network.incoming.bytes.rate_cfed_0_sig_port_2:
+      - cfed_0_sig_port_2
+      - network.incoming.bytes.rate
+      disk.write.bytes.rate_cfed_server_0:
+      - cfed_server_0
+      - disk.write.bytes.rate
+      network.outgoing.bytes_cfed_0_int_ctrl0_port_0:
+      - cfed_0_int_ctrl0_port_0
+      - network.outgoing.bytes
+      host_cfed_server_0:
+      - cfed_server_0
+      - host
+      network.outgoing.bytes_cfed_0_int_ctrl1_port_1:
+      - cfed_0_int_ctrl1_port_1
+      - network.outgoing.bytes
+      network.outgoing.bytes.rate_cfed_0_int_ctrl1_port_1:
+      - cfed_0_int_ctrl1_port_1
+      - network.outgoing.bytes.rate
+      instance_cfed_server_0:
+      - cfed_server_0
+      - instance
+      network.incoming.bytes_cfed_0_int_ctrl0_port_0:
+      - cfed_0_int_ctrl0_port_0
+      - network.incoming.bytes
+      network.outgoing.bytes.rate_cfed_0_int_ctrl0_port_0:
+      - cfed_0_int_ctrl0_port_0
+      - network.outgoing.bytes.rate
+      disk.device.write.bytes_cfed_server_0:
+      - cfed_server_0
+      - disk.device.write.bytes
+      network.outgoing.packets.rate_cfed_0_sig_port_2:
+      - cfed_0_sig_port_2
+      - network.outgoing.packets.rate
+      network.outpoing.packets_cfed_0_int_ctrl1_port_1:
+      - cfed_0_int_ctrl1_port_1
+      - network.outpoing.packets
+      network.incoming.packets_cfed_0_sig_port_2:
+      - cfed_0_sig_port_2
+      - network.incoming.packets
+      cpu_util_cfed_server_0:
+      - cfed_server_0
+      - cpu_util
+      attachment_cfed_0_sig_port_2:
+      - cfed_0_sig_port_2
+      - attachment
+      disk.device.capacity_cfed_server_0:
+      - cfed_server_0
+      - disk.device.capacity
+      feature_cfed_0_int_ctrl0_port_0:
+      - cfed_0_int_ctrl0_port_0
+      - feature
+      network.incoming.packets_cfed_0_int_ctrl1_port_1:
+      - cfed_0_int_ctrl1_port_1
+      - network.incoming.packets
+      forwarder_cfed_0_sig_port_2:
+      - cfed_0_sig_port_2
+      - forwarder
+      cpu_cfed_server_0:
+      - cfed_server_0
+      - cpu
+      disk.device.allocation_cfed_server_0:
+      - cfed_server_0
+      - disk.device.allocation
+      disk.iops_cfed_server_0:
+      - cfed_server_0
+      - disk.iops
+      disk.device.write.requests.rate_cfed_server_0:
+      - cfed_server_0
+      - disk.device.write.requests.rate
+      disk.read.bytes_cfed_server_0:
+      - cfed_server_0
+      - disk.read.bytes
+      scalable_cfed_server_0:
+      - cfed_server_0
+      - scalable
+      binding_cfed_0_int_ctrl0_port_0:
+      - cfed_0_int_ctrl0_port_0
+      - binding
+      disk.device.read.requests_cfed_server_0:
+      - cfed_server_0
+      - disk.device.read.requests
+      binding_cfed_0_int_ctrl1_port_1:
+      - cfed_0_int_ctrl1_port_1
+      - binding
+      network.incoming.packets.rate_cfed_0_int_ctrl0_port_0:
+      - cfed_0_int_ctrl0_port_0
+      - network.incoming.packets.rate
+      network.incoming.packets.rate_cfed_0_int_ctrl1_port_1:
+      - cfed_0_int_ctrl1_port_1
+      - network.incoming.packets.rate
+      disk.device.usage_cfed_server_0:
+      - cfed_server_0
+      - disk.device.usage
+      binding_cfed_0_sig_port_2:
+      - cfed_0_sig_port_2
+      - binding
+      network.incoming.packets.rate_cfed_0_sig_port_2:
+      - cfed_0_sig_port_2
+      - network.incoming.packets.rate
+      disk.device.read.bytes_cfed_server_0:
+      - cfed_server_0
+      - disk.device.read.bytes
+      binding_cfed_server_0:
+      - cfed_server_0
+      - binding
+      memory.resident_cfed_server_0:
+      - cfed_server_0
+      - memory.resident
+      forwarder_cfed_0_int_ctrl1_port_1:
+      - cfed_0_int_ctrl1_port_1
+      - forwarder
+      vcpus_cfed_server_0:
+      - cfed_server_0
+      - vcpus
+      disk.latency_cfed_server_0:
+      - cfed_server_0
+      - disk.latency
+      network.outgoing.bytes.rate_cfed_0_sig_port_2:
+      - cfed_0_sig_port_2
+      - network.outgoing.bytes.rate
+      disk.read.bytes.rate_cfed_server_0:
+      - cfed_server_0
+      - disk.read.bytes.rate
+      forwarder_cfed_0_int_ctrl0_port_0:
+      - cfed_0_int_ctrl0_port_0
+      - forwarder
+      disk.read.requests_cfed_server_0:
+      - cfed_server_0
+      - disk.read.requests
+      disk.device.latency_cfed_server_0:
+      - cfed_server_0
+      - disk.device.latency
+      os_cfed_server_0:
+      - cfed_server_0
+      - os
+      network.outpoing.packets_cfed_0_int_ctrl0_port_0:
+      - cfed_0_int_ctrl0_port_0
+      - network.outpoing.packets
+      feature_cfed_server_0:
+      - cfed_server_0
+      - feature
+      disk.ephemeral.size_cfed_server_0:
+      - cfed_server_0
+      - disk.ephemeral.size
+      disk.root.size_cfed_server_0:
+      - cfed_server_0
+      - disk.root.size
+      network.incoming.packets_cfed_0_int_ctrl0_port_0:
+      - cfed_0_int_ctrl0_port_0
+      - network.incoming.packets
+      feature_cfed_0_int_ctrl1_port_1:
+      - cfed_0_int_ctrl1_port_1
+      - feature
+      endpoint_cfed_server_0:
+      - cfed_server_0
+      - endpoint
+      network.outgoing.bytes_cfed_0_sig_port_2:
+      - cfed_0_sig_port_2
+      - network.outgoing.bytes
+      network.outpoing.packets_cfed_0_sig_port_2:
+      - cfed_0_sig_port_2
+      - network.outpoing.packets
+      disk.device.read.bytes.rate_cfed_server_0:
+      - cfed_server_0
+      - disk.device.read.bytes.rate
+      disk.usage_cfed_server_0:
+      - cfed_server_0
+      - disk.usage
+      disk.allocation_cfed_server_0:
+      - cfed_server_0
+      - disk.allocation
+      cpu.delta_cfed_server_0:
+      - cfed_server_0
+      - cpu.delta
+      disk.write.requests.rate_cfed_server_0:
+      - cfed_server_0
+      - disk.write.requests.rate
+      disk.device.write.bytes.rate_cfed_server_0:
+      - cfed_server_0
+      - disk.device.write.bytes.rate
+      disk.capacity_cfed_server_0:
+      - cfed_server_0
+      - disk.capacity
+      disk.device.write.requests_cfed_server_0:
+      - cfed_server_0
+      - disk.device.write.requests
+      memory.usage_cfed_server_0:
+      - cfed_server_0
+      - memory.usage
+      port_mirroring_cfed_0_sig_port_2:
+      - cfed_0_sig_port_2
+      - port_mirroring
+      port_mirroring_cfed_0_int_ctrl0_port_0:
+      - cfed_0_int_ctrl0_port_0
+      - port_mirroring
+      port_mirroring_cfed_0_int_ctrl1_port_1:
+      - cfed_0_int_ctrl1_port_1
+      - port_mirroring
+    requirements:
+      dependency_cfed_server_0:
+      - cfed_server_0
+      - dependency
+      dependency_cfed_0_int_ctrl0_port_0:
+      - cfed_0_int_ctrl0_port_0
+      - dependency
+      dependency_cfed_0_int_ctrl1_port_1:
+      - cfed_0_int_ctrl1_port_1
+      - dependency
+      link_cfed_0_int_ctrl1_port_1:
+      - cfed_0_int_ctrl1_port_1
+      - link
+      link_cfed_0_int_ctrl0_port_0:
+      - cfed_0_int_ctrl0_port_0
+      - link
+      link_cfed_0_sig_port_2:
+      - cfed_0_sig_port_2
+      - link
+      dependency_cfed_0_sig_port_2:
+      - cfed_0_sig_port_2
+      - dependency
+      local_storage_cfed_server_0:
+      - cfed_server_0
+      - local_storage
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichNfcNamingFunction/in/nest_cfed_bServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichNfcNamingFunction/in/nest_cfed_bServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..7e26005
--- /dev/null
@@ -0,0 +1,1111 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: nest_cfed_b
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+- openecomp_index:
+    file: openecomp/_index.yml
+node_types:
+  org.openecomp.resource.vfc.compute.nodes.heat.cfed:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+  inputs:
+    cfed_flavor_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: VM flavor name.
+    cfed_sigv6_ipmap_sideB_0_fixed_dbaas:
+      hidden: false
+      immutable: false
+      type: list
+      description: VM/subnet/usage IP address list. Keyed by group index.
+      entry_schema:
+        type: string
+    port_cfed_1_int_ctrl0_port_0_subnetpoolid:
+      type: string
+      required: true
+    cfed_sig_ipmap_sideB_0_fixed_dbaas:
+      hidden: false
+      immutable: false
+      type: list
+      description: VM/subnet/usage IP address list. Keyed by group index.
+      entry_schema:
+        type: string
+    port_cfed_1_sig_port_2_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    usage_info:
+      hidden: false
+      immutable: false
+      type: json
+      description: |
+        Per-VM/vNIC data for members of this elastic group.
+    port_cfed_1_sig_port_2_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    config_info:
+      hidden: false
+      immutable: false
+      type: json
+      description: Service configuration and network layout.
+    group_index:
+      hidden: false
+      immutable: false
+      type: float
+      description: Index of the VM pair within the elastic group.
+      constraints:
+      - in_range:
+        - 0
+        - null
+    sig_subnet_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: UUID of the subnet.
+    workload_context:
+      label: Workload Context
+      hidden: false
+      immutable: false
+      type: string
+      description: Workload context for this VNF.
+    port_cfed_1_sig_port_2_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    ssh_private_key:
+      hidden: true
+      immutable: false
+      type: string
+      description: Private SSH key for VM to VM communication in this system.
+    port_cfed_1_sig_port_2_network_role:
+      type: string
+      required: true
+    port_cfed_1_int_ctrl1_port_1_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    port_cfed_1_int_ctrl0_port_0_network_role_tag:
+      type: string
+      required: true
+    int_ctrl1_Sec_Grp:
+      hidden: false
+      immutable: false
+      type: string
+      description: Internal network 0 security group UUID.
+    port_cfed_1_sig_port_2_network_role_tag:
+      type: string
+      required: true
+    current_group_count:
+      hidden: false
+      immutable: false
+      type: string
+      description: |
+        Current VM pair count within the elastic group.
+    port_cfed_1_int_ctrl0_port_0_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    total_pair_count:
+      hidden: false
+      immutable: false
+      type: string
+      description: |
+        This string will evaluate to the number of PairGroups in the VNF.
+    int_ctrl1_net_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: Internal network 1.
+    port_cfed_1_sig_port_2_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    cfed_image_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: VM image name.
+    port_cfed_1_int_ctrl1_port_1_subnetpoolid:
+      type: string
+      required: true
+    port_cfed_1_int_ctrl1_port_1_related_networks:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+    ssh_public_key:
+      hidden: false
+      immutable: false
+      type: string
+      description: Public SSH key for VM to VM communication in this system.
+    port_cfed_1_int_ctrl1_port_1_network_role_tag:
+      type: string
+      required: true
+    port_cfed_1_sig_port_2_related_networks:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+    port_cfed_1_int_ctrl0_port_0_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    port_cfed_1_sig_port_2_subnetpoolid:
+      type: string
+      required: true
+    sig_net_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: UUID of the network.
+    sigv6_v6_subnet_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: UUID of the subnet.
+    vf_module_index:
+      hidden: false
+      immutable: false
+      type: float
+      description: Unique index for this VNF Module instance.
+    backup_file1:
+      hidden: false
+      immutable: false
+      type: string
+      description: |
+        <cURL path>/<backup file>
+        This is only used for restore (aka "disaster recovery") and
+        only referenced on OAM-A.
+    vf_module_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: Unique ID for this VNF module instance.
+    backup_file2:
+      hidden: false
+      immutable: false
+      type: string
+      description: |
+        <cURL path>/<backup file>
+        This is only used for restore (aka "disaster recovery") and
+        only referenced on OAM-A.
+    port_cfed_1_int_ctrl1_port_1_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    cfed_names:
+      hidden: false
+      immutable: false
+      type: list
+      description: VM name list.
+      entry_schema:
+        type: string
+    role:
+      hidden: false
+      immutable: false
+      type: string
+      description: VM role during LCM activities.
+      constraints:
+      - valid_values:
+        - oam
+        - other
+    vnf_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: Unique name for this VNF instance.
+    vf_module_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: Unique name for this VNF module instance.
+    port_cfed_1_int_ctrl0_port_0_related_networks:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+    port_cfed_1_int_ctrl1_port_1_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    vnf_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: Unique ID for this VNF instance.
+    port_cfed_1_int_ctrl1_port_1_network_role:
+      type: string
+      required: true
+    lcm_keypair:
+      hidden: false
+      immutable: false
+      type: string
+      description: Lifecycle management access key pair.
+      constraints: [
+        ]
+    port_cfed_1_int_ctrl1_port_1_order:
+      type: integer
+      required: true
+    availability_zone_1:
+      hidden: false
+      immutable: false
+      type: string
+      description: VM availability zone.
+    sig_Sec_Grp:
+      hidden: false
+      immutable: false
+      type: string
+      description: UUID of the security group.
+    int_ctrl0_Sec_Grp:
+      hidden: false
+      immutable: false
+      type: string
+      description: Internal network 0 security group UUID.
+    net_info_str:
+      hidden: false
+      immutable: false
+      type: string
+      description: |
+        JSON formatted string with all network info.
+        This is redundant with int_net_info and ext_net_info except
+        in Kilo there is no way to convert json to string for
+        output as a personality file.
+    ssh_access_key:
+      hidden: false
+      immutable: false
+      type: string
+      description: Public SSH key for external access.
+    int_ctrl0_net_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: Internal network 0.
+    port_cfed_1_sig_port_2_order:
+      type: integer
+      required: true
+    environment_context:
+      label: Environment Context
+      hidden: false
+      immutable: false
+      type: string
+      description: Environment context for this VNF.
+    port_cfed_1_int_ctrl0_port_0_network_role:
+      type: string
+      required: true
+    pair2idx:
+      hidden: false
+      immutable: false
+      type: json
+      description: Map group index to VMtype index.
+    vm_role:
+      hidden: false
+      immutable: false
+      type: string
+      description: Unique role for these VMs.
+    port_cfed_1_int_ctrl0_port_0_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_cfed_1_int_ctrl0_port_0_order:
+      type: integer
+      required: true
+    port_cfed_1_int_ctrl0_port_0_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    group_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: ID number of the elastic group this pair is a member of.
+    install_config:
+      hidden: false
+      immutable: false
+      type: string
+      description: JSON formatted string of install config values.
+    cfed_volume_1:
+      hidden: false
+      immutable: false
+      type: json
+      description: CFED Volume.
+    group_tag:
+      hidden: false
+      immutable: false
+      type: string
+      description: Key into "usage_info" for members of this elastic group.
+    port_cfed_1_int_ctrl1_port_1_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+  node_templates:
+    cfed_server_1:
+      type: org.openecomp.resource.vfc.compute.nodes.heat.cfed
+      properties:
+        flavor:
+          get_input: cfed_flavor_name
+        key_name:
+          get_input: lcm_keypair
+        availability_zone:
+          get_input: availability_zone_1
+        image:
+          get_input: cfed_image_name
+        image_update_policy: REBUILD
+        metadata:
+          backup_file1:
+            get_input: backup_file1
+          total_pair_count:
+            get_input: total_pair_count
+          vf_module_id:
+            get_input: vf_module_id
+          backup_file2:
+            get_input: backup_file2
+          image:
+            get_input: cfed_image_name
+          member_index: '1'
+          certificate: ''
+          vnf_name:
+            get_input: vnf_name
+          created_at: now
+          environment_context:
+            get_input: environment_context
+          group_type: pair
+          group_index:
+            get_input: group_index
+          workload_context:
+            get_input: workload_context
+          vf_module_name:
+            get_input: vf_module_name
+          default_action: install
+          flavor:
+            get_input: cfed_flavor_name
+          vm_role:
+            get_input: vm_role
+          side_action:
+            get_input:
+            - usage_info
+            - defaults
+            - action
+            - '1'
+          group_id:
+            get_input: group_id
+          vnf_id:
+            get_input: vnf_id
+          current_group_count:
+            get_input: current_group_count
+          action: install
+          vf_module_index:
+            get_input: vf_module_index
+        config_drive: true
+        personality:
+          /storage/cloud/discover/GlobalConfig.json:
+            str_replace:
+              template: ' { "v4_dns_server": "$v4dns", "v6_dns_server": "$v6dns",
+                "v4_enum_server": "$v4enum", "v6_enum_server": "$v6enum", "v4_ntp_server":
+                "$v4ntp", "v6_ntp_server": "$v6ntp", "time_zone": "$time_zone", "system_name":
+                "$sysname", "system_prefix": "$sysprefix", "license_reference": "$license_ref",
+                "local_dns_domain": "$local_dns", "local_enum_domain": "$local_enum",
+                $cfg } '
+              params:
+                $v4dns:
+                  get_input:
+                  - usage_info
+                  - v4_dns_server
+                $v6enum:
+                  get_input:
+                  - usage_info
+                  - v6_enum_serve
+                $v6ntp:
+                  get_input:
+                  - usage_info
+                  - v6_ntp_server
+                $v6dns:
+                  get_input:
+                  - usage_info
+                  - v6_dns_server
+                $v4enum:
+                  get_input:
+                  - usage_info
+                  - v4_enum_server
+                $sysname:
+                  get_input:
+                  - usage_info
+                  - system_name
+                $local_enum:
+                  get_input:
+                  - usage_info
+                  - local_enum_domain
+                $v4ntp:
+                  get_input:
+                  - usage_info
+                  - v4_ntp_server
+                $cfg:
+                  get_input: install_config
+                $local_dns:
+                  get_input:
+                  - usage_info
+                  - local_dns_domain
+                $sysprefix:
+                  get_input:
+                  - usage_info
+                  - system_prefix
+                $license_ref:
+                  get_input:
+                  - usage_info
+                  - license_reference
+                $time_zone:
+                  get_input:
+                  - usage_info
+                  - time_zone
+          /storage/cloud/.ssh/SSHpubkey:
+            get_input: ssh_public_key
+          /storage/cloud/CLDsetup_data.json:
+            str_replace:
+              template: ' { "drbd_uuid": "", "int_vlan_id": "$int_vlan_id", "random":
+                "$random", "SSHpubkeyFile": "/storage/cloud/.ssh/SSHpubkey", "SSHprivkeyFile":
+                "/storage/cloud/.ssh/SSHprivkey", "SSHaccessKey": "$acckey", "stk":
+                "$stk", "uuid_storage": "$uuid_storage" }'
+              params:
+                $random: UNSUPPORTED_RESOURCE_cfed_RandomB
+                $stk:
+                  get_input:
+                  - usage_info
+                  - stack
+                $uuid_storage:
+                  get_input:
+                  - cfed_volume_1
+                  - get_attribute:
+                    - cfed_mapidx_1
+                    - idx1
+                $acckey:
+                  get_input: ssh_access_key
+                $int_vlan_id:
+                  get_input:
+                  - usage_info
+                  - int_vlan_id
+          /storage/cloud/discover/VMinfo.json:
+            str_replace:
+              template: ' { "vm_suffix": "$vmname", "service_config": $servcfg, "v4_default_gateway":
+                "$v4gateway", "v6_default_gateway": "$v6gateway", "v4_static_routes":
+                $v4static_routes, "v6_static_routes": $v6static_routes, "IPinfo":
+                [$ipinfo], "Netinfo": $netinfo } '
+              params:
+                $ipinfo:
+                  str_replace:
+                    template: '{"count": "$ip_count00", "binding_type": "$btype00",
+                      "mac_address": "$mac00", "assigned_ips": [$assgip00], "label2info":
+                      [$l2info00]} ,{"count": "$ip_count01", "binding_type": "$btype01",
+                      "mac_address": "$mac01", "assigned_ips": [$assgip01], "label2info":
+                      [$l2info01]} ,{"count": "$ip_count02", "binding_type": "$btype02",
+                      "mac_address": "$mac02", "assigned_ips": [$assgip02], "label2info":
+                      [$l2info02]} '
+                    params:
+                      $btype00: normal
+                      $btype01: normal
+                      $btype02: normal
+                      $assgip00:
+                        list_join:
+                        - ','
+                        - - list_join:
+                            - ''
+                            - - '"'
+                              - get_attribute:
+                                - cfed_1_int_ctrl0_port_0
+                                - fixed_ips
+                                - 0
+                                - ip_address
+                              - '"'
+                      $assgip01:
+                        list_join:
+                        - ','
+                        - - list_join:
+                            - ''
+                            - - '"'
+                              - get_attribute:
+                                - cfed_1_int_ctrl1_port_1
+                                - fixed_ips
+                                - 0
+                                - ip_address
+                              - '"'
+                      $assgip02:
+                        list_join:
+                        - ','
+                        - - list_join:
+                            - ''
+                            - - '"'
+                              - get_attribute:
+                                - cfed_1_sig_port_2
+                                - fixed_ips
+                                - 0
+                                - ip_address
+                              - '"'
+                          - list_join:
+                            - ''
+                            - - '"'
+                              - get_attribute:
+                                - cfed_1_sig_port_2
+                                - fixed_ips
+                                - 1
+                                - ip_address
+                              - '"'
+                      $mac01:
+                        get_attribute:
+                        - cfed_1_int_ctrl1_port_1
+                        - mac_address
+                      $mac02:
+                        get_attribute:
+                        - cfed_1_sig_port_2
+                        - mac_address
+                      $mac00:
+                        get_attribute:
+                        - cfed_1_int_ctrl0_port_0
+                        - mac_address
+                      $l2info01:
+                        str_replace:
+                          template: '{"label": "connectivity_ip", "subnet": "INTERNALnet1",
+                            "ip": "$ip00"}'
+                          params:
+                            $ip00: ''
+                      $l2info00:
+                        str_replace:
+                          template: '{"label": "connectivity_ip", "subnet": "INTERNALnet0",
+                            "ip": "$ip00"}'
+                          params:
+                            $ip00: ''
+                      $ip_count00: 0
+                      $l2info02:
+                        str_replace:
+                          template: '{"label": "servicetype=cfed-0;fixed;nitype=dbaas;subnet=sig",
+                            "subnet": "sig", "ip": "$ip00"},{"label": "servicetype=cfed-0;fixed;nitype=dbaas;subnet=sigv6",
+                            "subnet": "sigv6", "ip": "$ip01"}'
+                          params:
+                            $ip01:
+                              get_input:
+                              - cfed_sigv6_ipmap_sideB_0_fixed_dbaas
+                              - get_input: group_index
+                            $ip00:
+                              get_input:
+                              - cfed_sig_ipmap_sideB_0_fixed_dbaas
+                              - get_input: group_index
+                      $ip_count01: 0
+                      $ip_count02: 2
+                $netinfo:
+                  get_input: net_info_str
+                $v4gateway:
+                  get_input:
+                  - config_info
+                  - v4_default_gateway
+                $servcfg:
+                  get_input:
+                  - config_info
+                  - poolinfo
+                $v4static_routes:
+                  get_input:
+                  - config_info
+                  - v4_static_routes
+                $v6gateway:
+                  get_input:
+                  - config_info
+                  - v6_default_gateway
+                $vmname:
+                  get_input:
+                  - cfed_names
+                  - get_attribute:
+                    - cfed_mapidx_1
+                    - idx1
+                $v6static_routes:
+                  get_input:
+                  - config_info
+                  - v6_static_routes
+          /storage/cloud/.ssh/SSHprivkey:
+            get_input: ssh_private_key
+        name:
+          get_input:
+          - cfed_names
+          - get_attribute:
+            - cfed_mapidx_1
+            - idx1
+    cfed_1_int_ctrl1_port_1:
+      type: org.openecomp.resource.cp.v2.extNeutronCP
+      properties:
+        subnetpoolid:
+          get_input: port_cfed_1_int_ctrl1_port_1_subnetpoolid
+        allowed_address_pairs: [
+          ]
+        binding:vnic_type: normal
+        related_networks:
+          get_input: port_cfed_1_int_ctrl1_port_1_related_networks
+        network:
+          get_input: int_ctrl1_net_id
+        replacement_policy: AUTO
+        ip_requirements:
+          get_input: port_cfed_1_int_ctrl1_port_1_ip_requirements
+        security_groups:
+        - get_input: int_ctrl1_Sec_Grp
+        network_role:
+          get_input: port_cfed_1_int_ctrl1_port_1_network_role
+        fixed_ips: [
+          ]
+        mac_requirements:
+          get_input: port_cfed_1_int_ctrl1_port_1_mac_requirements
+        subinterface_indicator: false
+        name:
+          str_replace:
+            template: $vnf_name_cfed_1_int_ctrl1_port_1
+            params:
+              $vnf_name:
+                get_input: vnf_name
+        exCP_naming:
+          get_input: port_cfed_1_int_ctrl1_port_1_exCP_naming
+        vlan_requirements:
+          get_input: port_cfed_1_int_ctrl1_port_1_vlan_requirements
+        network_role_tag:
+          get_input: port_cfed_1_int_ctrl1_port_1_network_role_tag
+        order:
+          get_input: port_cfed_1_int_ctrl1_port_1_order
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: cfed_server_1
+          relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        port_mirroring:
+          properties:
+            connection_point:
+              nf_type: ''
+              nfc_type: ''
+              nf_naming_code: ''
+              nfc_naming_code: cfed_server_1
+              network_role:
+                get_input: port_cfed_1_int_ctrl1_port_1_network_role
+              pps_capacity: ''
+    cfed_1_int_ctrl0_port_0:
+      type: org.openecomp.resource.cp.v2.extNeutronCP
+      properties:
+        subnetpoolid:
+          get_input: port_cfed_1_int_ctrl0_port_0_subnetpoolid
+        allowed_address_pairs: [
+          ]
+        binding:vnic_type: normal
+        related_networks:
+          get_input: port_cfed_1_int_ctrl0_port_0_related_networks
+        network:
+          get_input: int_ctrl0_net_id
+        replacement_policy: AUTO
+        ip_requirements:
+          get_input: port_cfed_1_int_ctrl0_port_0_ip_requirements
+        security_groups:
+        - get_input: int_ctrl0_Sec_Grp
+        network_role:
+          get_input: port_cfed_1_int_ctrl0_port_0_network_role
+        fixed_ips: [
+          ]
+        mac_requirements:
+          get_input: port_cfed_1_int_ctrl0_port_0_mac_requirements
+        subinterface_indicator: false
+        name:
+          str_replace:
+            template: $vnf_name_cfed_1_int_ctrl0_port_0
+            params:
+              $vnf_name:
+                get_input: vnf_name
+        exCP_naming:
+          get_input: port_cfed_1_int_ctrl0_port_0_exCP_naming
+        vlan_requirements:
+          get_input: port_cfed_1_int_ctrl0_port_0_vlan_requirements
+        network_role_tag:
+          get_input: port_cfed_1_int_ctrl0_port_0_network_role_tag
+        order:
+          get_input: port_cfed_1_int_ctrl0_port_0_order
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: cfed_server_1
+          relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        port_mirroring:
+          properties:
+            connection_point:
+              nf_type: ''
+              nfc_type: ''
+              nf_naming_code: ''
+              nfc_naming_code: cfed_server_1
+              network_role:
+                get_input: port_cfed_1_int_ctrl0_port_0_network_role
+              pps_capacity: ''
+    cfed_1_sig_port_2:
+      type: org.openecomp.resource.cp.v2.extNeutronCP
+      properties:
+        subnetpoolid:
+          get_input: port_cfed_1_sig_port_2_subnetpoolid
+        allowed_address_pairs: [
+          ]
+        binding:vnic_type: normal
+        related_networks:
+          get_input: port_cfed_1_sig_port_2_related_networks
+        network:
+          get_input: sig_net_id
+        replacement_policy: AUTO
+        ip_requirements:
+          get_input: port_cfed_1_sig_port_2_ip_requirements
+        security_groups:
+        - get_input: sig_Sec_Grp
+        network_role:
+          get_input: port_cfed_1_sig_port_2_network_role
+        fixed_ips:
+        - subnet:
+            get_input: sig_subnet_id
+          ip_address:
+            get_input:
+            - cfed_sig_ipmap_sideB_0_fixed_dbaas
+            - get_input: group_index
+        - subnet:
+            get_input: sigv6_v6_subnet_id
+          ip_address:
+            get_input:
+            - cfed_sigv6_ipmap_sideB_0_fixed_dbaas
+            - get_input: group_index
+        mac_requirements:
+          get_input: port_cfed_1_sig_port_2_mac_requirements
+        subinterface_indicator: false
+        name:
+          str_replace:
+            template: $vnf_name_cfed_1_sig_port_2
+            params:
+              $vnf_name:
+                get_input: vnf_name
+        exCP_naming:
+          get_input: port_cfed_1_sig_port_2_exCP_naming
+        vlan_requirements:
+          get_input: port_cfed_1_sig_port_2_vlan_requirements
+        network_role_tag:
+          get_input: port_cfed_1_sig_port_2_network_role_tag
+        order:
+          get_input: port_cfed_1_sig_port_2_order
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: cfed_server_1
+          relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        port_mirroring:
+          properties:
+            connection_point:
+              nf_type: ''
+              nfc_type: ''
+              nf_naming_code: ''
+              nfc_naming_code: cfed_server_1
+              network_role:
+                get_input: port_cfed_1_sig_port_2_network_role
+              pps_capacity: ''
+  groups:
+    nest_cfed_b_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/nest_cfed_b.yaml
+        description: Generate resources for a pair of 'cfed' VMs. ...
+      members:
+      - cfed_server_1
+      - cfed_1_int_ctrl1_port_1
+      - cfed_1_int_ctrl0_port_0
+      - cfed_1_sig_port_2
+  outputs:
+    VMB-EXT_IPS:
+      description: IP addresses assigned to the first external network.
+      value:
+      - list_join:
+        - ''
+        - - '"'
+          - get_attr:
+            - cfed_1_sig_port_2
+            - fixed_ips
+            - 0
+            - ip_address
+          - '"'
+      - list_join:
+        - ''
+        - - '"'
+          - get_attr:
+            - cfed_1_sig_port_2
+            - fixed_ips
+            - 1
+            - ip_address
+          - '"'
+    Version:
+      description: |
+        Template file version number. This should be updated
+        each time a non-comment change is made to this file.
+      value: K1
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.heat.cfed
+    capabilities:
+      network.incoming.bytes_cfed_1_int_ctrl1_port_1:
+      - cfed_1_int_ctrl1_port_1
+      - network.incoming.bytes
+      network.incoming.bytes_cfed_1_int_ctrl0_port_0:
+      - cfed_1_int_ctrl0_port_0
+      - network.incoming.bytes
+      network.outpoing.packets_cfed_1_sig_port_2:
+      - cfed_1_sig_port_2
+      - network.outpoing.packets
+      disk.device.iops_cfed_server_1:
+      - cfed_server_1
+      - disk.device.iops
+      network.outgoing.bytes.rate_cfed_1_int_ctrl1_port_1:
+      - cfed_1_int_ctrl1_port_1
+      - network.outgoing.bytes.rate
+      memory_cfed_server_1:
+      - cfed_server_1
+      - memory
+      disk.device.read.requests.rate_cfed_server_1:
+      - cfed_server_1
+      - disk.device.read.requests.rate
+      disk.write.bytes_cfed_server_1:
+      - cfed_server_1
+      - disk.write.bytes
+      network.outgoing.bytes.rate_cfed_1_int_ctrl0_port_0:
+      - cfed_1_int_ctrl0_port_0
+      - network.outgoing.bytes.rate
+      disk.write.requests_cfed_server_1:
+      - cfed_server_1
+      - disk.write.requests
+      disk.device.write.bytes_cfed_server_1:
+      - cfed_server_1
+      - disk.device.write.bytes
+      instance_cfed_server_1:
+      - cfed_server_1
+      - instance
+      disk.write.bytes.rate_cfed_server_1:
+      - cfed_server_1
+      - disk.write.bytes.rate
+      network.incoming.bytes.rate_cfed_1_int_ctrl1_port_1:
+      - cfed_1_int_ctrl1_port_1
+      - network.incoming.bytes.rate
+      network.incoming.bytes.rate_cfed_1_int_ctrl0_port_0:
+      - cfed_1_int_ctrl0_port_0
+      - network.incoming.bytes.rate
+      network.incoming.packets_cfed_1_sig_port_2:
+      - cfed_1_sig_port_2
+      - network.incoming.packets
+      host_cfed_server_1:
+      - cfed_server_1
+      - host
+      attachment_cfed_1_sig_port_2:
+      - cfed_1_sig_port_2
+      - attachment
+      forwarder_cfed_1_int_ctrl1_port_1:
+      - cfed_1_int_ctrl1_port_1
+      - forwarder
+      disk.latency_cfed_server_1:
+      - cfed_server_1
+      - disk.latency
+      disk.device.capacity_cfed_server_1:
+      - cfed_server_1
+      - disk.device.capacity
+      network.outgoing.bytes_cfed_1_int_ctrl0_port_0:
+      - cfed_1_int_ctrl0_port_0
+      - network.outgoing.bytes
+      cpu_util_cfed_server_1:
+      - cfed_server_1
+      - cpu_util
+      scalable_cfed_server_1:
+      - cfed_server_1
+      - scalable
+      network.outgoing.bytes.rate_cfed_1_sig_port_2:
+      - cfed_1_sig_port_2
+      - network.outgoing.bytes.rate
+      disk.device.allocation_cfed_server_1:
+      - cfed_server_1
+      - disk.device.allocation
+      cpu_cfed_server_1:
+      - cfed_server_1
+      - cpu
+      network.outpoing.packets_cfed_1_int_ctrl0_port_0:
+      - cfed_1_int_ctrl0_port_0
+      - network.outpoing.packets
+      attachment_cfed_1_int_ctrl0_port_0:
+      - cfed_1_int_ctrl0_port_0
+      - attachment
+      disk.iops_cfed_server_1:
+      - cfed_server_1
+      - disk.iops
+      network.incoming.packets.rate_cfed_1_sig_port_2:
+      - cfed_1_sig_port_2
+      - network.incoming.packets.rate
+      network.outgoing.packets.rate_cfed_1_int_ctrl1_port_1:
+      - cfed_1_int_ctrl1_port_1
+      - network.outgoing.packets.rate
+      disk.device.write.requests.rate_cfed_server_1:
+      - cfed_server_1
+      - disk.device.write.requests.rate
+      feature_cfed_1_int_ctrl1_port_1:
+      - cfed_1_int_ctrl1_port_1
+      - feature
+      binding_cfed_1_sig_port_2:
+      - cfed_1_sig_port_2
+      - binding
+      disk.read.bytes_cfed_server_1:
+      - cfed_server_1
+      - disk.read.bytes
+      network.incoming.bytes_cfed_1_sig_port_2:
+      - cfed_1_sig_port_2
+      - network.incoming.bytes
+      forwarder_cfed_1_sig_port_2:
+      - cfed_1_sig_port_2
+      - forwarder
+      disk.device.usage_cfed_server_1:
+      - cfed_server_1
+      - disk.device.usage
+      binding_cfed_1_int_ctrl1_port_1:
+      - cfed_1_int_ctrl1_port_1
+      - binding
+      binding_cfed_1_int_ctrl0_port_0:
+      - cfed_1_int_ctrl0_port_0
+      - binding
+      disk.device.read.requests_cfed_server_1:
+      - cfed_server_1
+      - disk.device.read.requests
+      memory.resident_cfed_server_1:
+      - cfed_server_1
+      - memory.resident
+      disk.device.read.bytes_cfed_server_1:
+      - cfed_server_1
+      - disk.device.read.bytes
+      vcpus_cfed_server_1:
+      - cfed_server_1
+      - vcpus
+      network.outgoing.packets.rate_cfed_1_sig_port_2:
+      - cfed_1_sig_port_2
+      - network.outgoing.packets.rate
+      network.incoming.packets_cfed_1_int_ctrl1_port_1:
+      - cfed_1_int_ctrl1_port_1
+      - network.incoming.packets
+      network.incoming.packets_cfed_1_int_ctrl0_port_0:
+      - cfed_1_int_ctrl0_port_0
+      - network.incoming.packets
+      disk.read.bytes.rate_cfed_server_1:
+      - cfed_server_1
+      - disk.read.bytes.rate
+      network.incoming.packets.rate_cfed_1_int_ctrl1_port_1:
+      - cfed_1_int_ctrl1_port_1
+      - network.incoming.packets.rate
+      network.incoming.packets.rate_cfed_1_int_ctrl0_port_0:
+      - cfed_1_int_ctrl0_port_0
+      - network.incoming.packets.rate
+      feature_cfed_1_sig_port_2:
+      - cfed_1_sig_port_2
+      - feature
+      disk.device.latency_cfed_server_1:
+      - cfed_server_1
+      - disk.device.latency
+      binding_cfed_server_1:
+      - cfed_server_1
+      - binding
+      disk.read.requests_cfed_server_1:
+      - cfed_server_1
+      - disk.read.requests
+      network.outgoing.bytes_cfed_1_sig_port_2:
+      - cfed_1_sig_port_2
+      - network.outgoing.bytes
+      endpoint_cfed_server_1:
+      - cfed_server_1
+      - endpoint
+      forwarder_cfed_1_int_ctrl0_port_0:
+      - cfed_1_int_ctrl0_port_0
+      - forwarder
+      os_cfed_server_1:
+      - cfed_server_1
+      - os
+      feature_cfed_server_1:
+      - cfed_server_1
+      - feature
+      disk.ephemeral.size_cfed_server_1:
+      - cfed_server_1
+      - disk.ephemeral.size
+      network.outpoing.packets_cfed_1_int_ctrl1_port_1:
+      - cfed_1_int_ctrl1_port_1
+      - network.outpoing.packets
+      disk.root.size_cfed_server_1:
+      - cfed_server_1
+      - disk.root.size
+      network.outgoing.bytes_cfed_1_int_ctrl1_port_1:
+      - cfed_1_int_ctrl1_port_1
+      - network.outgoing.bytes
+      disk.device.read.bytes.rate_cfed_server_1:
+      - cfed_server_1
+      - disk.device.read.bytes.rate
+      disk.usage_cfed_server_1:
+      - cfed_server_1
+      - disk.usage
+      disk.allocation_cfed_server_1:
+      - cfed_server_1
+      - disk.allocation
+      cpu.delta_cfed_server_1:
+      - cfed_server_1
+      - cpu.delta
+      attachment_cfed_1_int_ctrl1_port_1:
+      - cfed_1_int_ctrl1_port_1
+      - attachment
+      disk.write.requests.rate_cfed_server_1:
+      - cfed_server_1
+      - disk.write.requests.rate
+      network.incoming.bytes.rate_cfed_1_sig_port_2:
+      - cfed_1_sig_port_2
+      - network.incoming.bytes.rate
+      feature_cfed_1_int_ctrl0_port_0:
+      - cfed_1_int_ctrl0_port_0
+      - feature
+      disk.capacity_cfed_server_1:
+      - cfed_server_1
+      - disk.capacity
+      disk.device.write.bytes.rate_cfed_server_1:
+      - cfed_server_1
+      - disk.device.write.bytes.rate
+      disk.device.write.requests_cfed_server_1:
+      - cfed_server_1
+      - disk.device.write.requests
+      memory.usage_cfed_server_1:
+      - cfed_server_1
+      - memory.usage
+      network.outgoing.packets.rate_cfed_1_int_ctrl0_port_0:
+      - cfed_1_int_ctrl0_port_0
+      - network.outgoing.packets.rate
+      port_mirroring_cfed_1_int_ctrl1_port_1:
+      - cfed_1_int_ctrl1_port_1
+      - port_mirroring
+      port_mirroring_cfed_1_int_ctrl0_port_0:
+      - cfed_1_int_ctrl0_port_0
+      - port_mirroring
+      port_mirroring_cfed_1_sig_port_2:
+      - cfed_1_sig_port_2
+      - port_mirroring
+    requirements:
+      dependency_cfed_server_1:
+      - cfed_server_1
+      - dependency
+      dependency_cfed_1_int_ctrl1_port_1:
+      - cfed_1_int_ctrl1_port_1
+      - dependency
+      dependency_cfed_1_int_ctrl0_port_0:
+      - cfed_1_int_ctrl0_port_0
+      - dependency
+      link_cfed_1_int_ctrl0_port_0:
+      - cfed_1_int_ctrl0_port_0
+      - link
+      link_cfed_1_int_ctrl1_port_1:
+      - cfed_1_int_ctrl1_port_1
+      - link
+      link_cfed_1_sig_port_2:
+      - cfed_1_sig_port_2
+      - link
+      dependency_cfed_1_sig_port_2:
+      - cfed_1_sig_port_2
+      - dependency
+      local_storage_cfed_server_1:
+      - cfed_server_1
+      - local_storage
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichNfcNamingFunction/in/nest_commonServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichNfcNamingFunction/in/nest_commonServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..0f29cd0
--- /dev/null
@@ -0,0 +1,2173 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: nest_common
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+  inputs:
+    total_vm_pairs:
+      hidden: false
+      immutable: false
+      type: string
+      description: |
+        This string will evaluate to the number of PairGroups in the VNF.
+    ext_net_list:
+      hidden: false
+      immutable: false
+      type: list
+      description: List of applicable subnet tags.
+      entry_schema:
+        type: string
+    int_net_count:
+      hidden: false
+      immutable: false
+      type: float
+      description: Number of internal networks.
+      constraints:
+      - valid_values:
+        - 1
+        - 2
+    ext_net_info:
+      hidden: false
+      immutable: false
+      type: json
+      description: |
+        Maps the network strings used in this HOT file
+         to network info for the target cloud.
+    vnf_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: Unique name for this VNF instance.
+    int_net1_label:
+      hidden: false
+      immutable: false
+      type: json
+      description: |
+        Map the number of internal networks to an internal net1 label
+        or the empty string.
+  node_templates:
+    Shared_Sec_Grp:
+      type: org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules
+      properties:
+        name:
+          str_replace:
+            template: $vnfname_sec_group
+            params:
+              $vnfname:
+                get_input: vnf_name
+        description: |
+          Open security settings.
+          This assumes that security is handled internal to the guest.
+        rules:
+        - ethertype: IPv4
+          remote_ip_prefix: 169.254.0.0/16
+          direction: ingress
+        - ethertype: IPv4
+          remote_ip_prefix: 169.254.0.0/16
+          direction: egress
+    int_ctrl0_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork
+      properties:
+        dhcp_enabled: false
+        network_name:
+          str_replace:
+            template: $vnfnameint_ctrl0_network
+            params:
+              $vnfname:
+                get_input: vnf_name
+        subnets:
+          int_ctrl0_subnet_0:
+            enable_dhcp: false
+            cidr: 169.254.5.0/24
+    int_ctrl1_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork
+      properties:
+        dhcp_enabled: false
+        network_name:
+          str_replace:
+            template: $vnfnameint_ctrl1_network
+            params:
+              $vnfname:
+                get_input: vnf_name
+        subnets:
+          int_ctrl1_subnet_0:
+            enable_dhcp: false
+            cidr: 169.254.9.0/24
+  groups:
+    nest_common_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/nest_common.yaml
+        description: |
+          Common resources needed for all LCP based vNFs.
+          Note that 2 internal subnets are defined. The csar2csop tool will
+          remove the seond if it is not applicable.
+          Similarly both contrain and OpenStack network resources are defined.
+          The csar2csop tool will remove whichever is not used.
+      members:
+      - Shared_Sec_Grp
+      - int_ctrl0_network
+      - int_ctrl1_network
+  outputs:
+    NetInfoStr:
+      description: Per-subnet information in string format.
+      value:
+        str_replace:
+          params:
+            $cidr00:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 0
+              - cidr
+            $cidr01:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 1
+              - cidr
+            $cidr02:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 2
+              - cidr
+            $cidr03:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 3
+              - cidr
+            $cidr04:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 4
+              - cidr
+            $cidr05:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 5
+              - cidr
+            $cidr06:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 6
+              - cidr
+            $cidr07:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 7
+              - cidr
+            $cidr08:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 8
+              - cidr
+            $cidr09:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 9
+              - cidr
+            $cidr10:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 10
+              - cidr
+            $cidr11:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 11
+              - cidr
+            $cidr12:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 12
+              - cidr
+            $cidr13:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 13
+              - cidr
+            $cidr14:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 14
+              - cidr
+            $cidr15:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 15
+              - cidr
+            $cidr16:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 16
+              - cidr
+            $cidr17:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 17
+              - cidr
+            $cidr18:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 18
+              - cidr
+            $cidr19:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 19
+              - cidr
+            $cidr20:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 20
+              - cidr
+            $cidr21:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 21
+              - cidr
+            $cidr22:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 22
+              - cidr
+            $cidr23:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 23
+              - cidr
+            $cidr24:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 24
+              - cidr
+            $cidr25:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 25
+              - cidr
+            $cidr26:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 26
+              - cidr
+            $cidr27:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 27
+              - cidr
+            $cidr28:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 28
+              - cidr
+            $cidr29:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 29
+              - cidr
+            $cidr30:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 30
+              - cidr
+            $cidr31:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 31
+              - cidr
+            $cidr32:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 32
+              - cidr
+            $cidr33:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 33
+              - cidr
+            $cidr34:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 34
+              - cidr
+            $cidr35:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 35
+              - cidr
+            $cidr36:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 36
+              - cidr
+            $cidr37:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 37
+              - cidr
+            $cidr38:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 38
+              - cidr
+            $cidr39:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 39
+              - cidr
+            $cidr40:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 40
+              - cidr
+            $cidr41:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 41
+              - cidr
+            $cidr42:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 42
+              - cidr
+            $cidr43:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 43
+              - cidr
+            $cidr44:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 44
+              - cidr
+            $cidr45:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 45
+              - cidr
+            $cidr46:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 46
+              - cidr
+            $cidr47:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 47
+              - cidr
+            $cidr48:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 48
+              - cidr
+            $cidr49:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 49
+              - cidr
+            $cidr50:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 50
+              - cidr
+            $cidr51:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 51
+              - cidr
+            $cidr52:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 52
+              - cidr
+            $cidr53:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 53
+              - cidr
+            $cidr54:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 54
+              - cidr
+            $cidr55:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 55
+              - cidr
+            $cidr56:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 56
+              - cidr
+            $cidr57:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 57
+              - cidr
+            $cidr58:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 58
+              - cidr
+            $cidr59:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 59
+              - cidr
+            $cidr60:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 60
+              - cidr
+            $cidr61:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 61
+              - cidr
+            $cidr62:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 62
+              - cidr
+            $cidr63:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 63
+              - cidr
+            $extlist:
+              list_join:
+              - ' '
+              - get_param: ext_net_list
+            $gw00:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 0
+              - default_gateway
+            $gw01:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 1
+              - default_gateway
+            $gw02:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 2
+              - default_gateway
+            $gw03:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 3
+              - default_gateway
+            $gw04:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 4
+              - default_gateway
+            $gw05:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 5
+              - default_gateway
+            $gw06:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 6
+              - default_gateway
+            $gw07:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 7
+              - default_gateway
+            $gw08:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 8
+              - default_gateway
+            $gw09:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 9
+              - default_gateway
+            $gw10:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 10
+              - default_gateway
+            $gw11:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 11
+              - default_gateway
+            $gw12:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 12
+              - default_gateway
+            $gw13:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 13
+              - default_gateway
+            $gw14:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 14
+              - default_gateway
+            $gw15:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 15
+              - default_gateway
+            $gw16:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 16
+              - default_gateway
+            $gw17:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 17
+              - default_gateway
+            $gw18:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 18
+              - default_gateway
+            $gw19:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 19
+              - default_gateway
+            $gw20:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 20
+              - default_gateway
+            $gw21:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 21
+              - default_gateway
+            $gw22:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 22
+              - default_gateway
+            $gw23:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 23
+              - default_gateway
+            $gw24:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 24
+              - default_gateway
+            $gw25:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 25
+              - default_gateway
+            $gw26:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 26
+              - default_gateway
+            $gw27:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 27
+              - default_gateway
+            $gw28:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 28
+              - default_gateway
+            $gw29:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 29
+              - default_gateway
+            $gw30:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 30
+              - default_gateway
+            $gw31:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 31
+              - default_gateway
+            $gw32:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 32
+              - default_gateway
+            $gw33:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 33
+              - default_gateway
+            $gw34:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 34
+              - default_gateway
+            $gw35:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 35
+              - default_gateway
+            $gw36:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 36
+              - default_gateway
+            $gw37:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 37
+              - default_gateway
+            $gw38:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 38
+              - default_gateway
+            $gw39:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 39
+              - default_gateway
+            $gw40:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 40
+              - default_gateway
+            $gw41:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 41
+              - default_gateway
+            $gw42:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 42
+              - default_gateway
+            $gw43:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 43
+              - default_gateway
+            $gw44:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 44
+              - default_gateway
+            $gw45:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 45
+              - default_gateway
+            $gw46:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 46
+              - default_gateway
+            $gw47:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 47
+              - default_gateway
+            $gw48:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 48
+              - default_gateway
+            $gw49:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 49
+              - default_gateway
+            $gw50:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 50
+              - default_gateway
+            $gw51:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 51
+              - default_gateway
+            $gw52:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 52
+              - default_gateway
+            $gw53:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 53
+              - default_gateway
+            $gw54:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 54
+              - default_gateway
+            $gw55:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 55
+              - default_gateway
+            $gw56:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 56
+              - default_gateway
+            $gw57:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 57
+              - default_gateway
+            $gw58:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 58
+              - default_gateway
+            $gw59:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 59
+              - default_gateway
+            $gw60:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 60
+              - default_gateway
+            $gw61:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 61
+              - default_gateway
+            $gw62:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 62
+              - default_gateway
+            $gw63:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 63
+              - default_gateway
+            $inet1tag:
+              get_param:
+              - int_net1_label
+              - str_replace:
+                  params:
+                    $val:
+                      get_param: int_net_count
+                  template: $val
+            $intnet0:
+              get_resource: int_ctrl0_network
+            $intnet1:
+              get_resource: int_ctrl1_network
+            $intsnet0:
+              get_resource: int_ctrl0_subnet_0
+            $intsnet1:
+              get_resource: int_ctrl1_subnet_0
+            $mtu00:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 0
+              - mtu_size
+            $mtu01:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 1
+              - mtu_size
+            $mtu02:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 2
+              - mtu_size
+            $mtu03:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 3
+              - mtu_size
+            $mtu04:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 4
+              - mtu_size
+            $mtu05:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 5
+              - mtu_size
+            $mtu06:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 6
+              - mtu_size
+            $mtu07:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 7
+              - mtu_size
+            $mtu08:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 8
+              - mtu_size
+            $mtu09:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 9
+              - mtu_size
+            $mtu10:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 10
+              - mtu_size
+            $mtu11:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 11
+              - mtu_size
+            $mtu12:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 12
+              - mtu_size
+            $mtu13:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 13
+              - mtu_size
+            $mtu14:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 14
+              - mtu_size
+            $mtu15:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 15
+              - mtu_size
+            $mtu16:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 16
+              - mtu_size
+            $mtu17:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 17
+              - mtu_size
+            $mtu18:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 18
+              - mtu_size
+            $mtu19:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 19
+              - mtu_size
+            $mtu20:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 20
+              - mtu_size
+            $mtu21:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 21
+              - mtu_size
+            $mtu22:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 22
+              - mtu_size
+            $mtu23:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 23
+              - mtu_size
+            $mtu24:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 24
+              - mtu_size
+            $mtu25:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 25
+              - mtu_size
+            $mtu26:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 26
+              - mtu_size
+            $mtu27:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 27
+              - mtu_size
+            $mtu28:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 28
+              - mtu_size
+            $mtu29:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 29
+              - mtu_size
+            $mtu30:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 30
+              - mtu_size
+            $mtu31:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 31
+              - mtu_size
+            $mtu32:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 32
+              - mtu_size
+            $mtu33:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 33
+              - mtu_size
+            $mtu34:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 34
+              - mtu_size
+            $mtu35:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 35
+              - mtu_size
+            $mtu36:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 36
+              - mtu_size
+            $mtu37:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 37
+              - mtu_size
+            $mtu38:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 38
+              - mtu_size
+            $mtu39:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 39
+              - mtu_size
+            $mtu40:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 40
+              - mtu_size
+            $mtu41:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 41
+              - mtu_size
+            $mtu42:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 42
+              - mtu_size
+            $mtu43:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 43
+              - mtu_size
+            $mtu44:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 44
+              - mtu_size
+            $mtu45:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 45
+              - mtu_size
+            $mtu46:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 46
+              - mtu_size
+            $mtu47:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 47
+              - mtu_size
+            $mtu48:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 48
+              - mtu_size
+            $mtu49:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 49
+              - mtu_size
+            $mtu50:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 50
+              - mtu_size
+            $mtu51:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 51
+              - mtu_size
+            $mtu52:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 52
+              - mtu_size
+            $mtu53:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 53
+              - mtu_size
+            $mtu54:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 54
+              - mtu_size
+            $mtu55:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 55
+              - mtu_size
+            $mtu56:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 56
+              - mtu_size
+            $mtu57:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 57
+              - mtu_size
+            $mtu58:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 58
+              - mtu_size
+            $mtu59:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 59
+              - mtu_size
+            $mtu60:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 60
+              - mtu_size
+            $mtu61:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 61
+              - mtu_size
+            $mtu62:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 62
+              - mtu_size
+            $mtu63:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 63
+              - mtu_size
+            $tag00:
+              get_param:
+              - ext_net_list
+              - 0
+            $tag01:
+              get_param:
+              - ext_net_list
+              - 1
+            $tag02:
+              get_param:
+              - ext_net_list
+              - 2
+            $tag03:
+              get_param:
+              - ext_net_list
+              - 3
+            $tag04:
+              get_param:
+              - ext_net_list
+              - 4
+            $tag05:
+              get_param:
+              - ext_net_list
+              - 5
+            $tag06:
+              get_param:
+              - ext_net_list
+              - 6
+            $tag07:
+              get_param:
+              - ext_net_list
+              - 7
+            $tag08:
+              get_param:
+              - ext_net_list
+              - 8
+            $tag09:
+              get_param:
+              - ext_net_list
+              - 9
+            $tag10:
+              get_param:
+              - ext_net_list
+              - 10
+            $tag11:
+              get_param:
+              - ext_net_list
+              - 11
+            $tag12:
+              get_param:
+              - ext_net_list
+              - 12
+            $tag13:
+              get_param:
+              - ext_net_list
+              - 13
+            $tag14:
+              get_param:
+              - ext_net_list
+              - 14
+            $tag15:
+              get_param:
+              - ext_net_list
+              - 15
+            $tag16:
+              get_param:
+              - ext_net_list
+              - 16
+            $tag17:
+              get_param:
+              - ext_net_list
+              - 17
+            $tag18:
+              get_param:
+              - ext_net_list
+              - 18
+            $tag19:
+              get_param:
+              - ext_net_list
+              - 19
+            $tag20:
+              get_param:
+              - ext_net_list
+              - 20
+            $tag21:
+              get_param:
+              - ext_net_list
+              - 21
+            $tag22:
+              get_param:
+              - ext_net_list
+              - 22
+            $tag23:
+              get_param:
+              - ext_net_list
+              - 23
+            $tag24:
+              get_param:
+              - ext_net_list
+              - 24
+            $tag25:
+              get_param:
+              - ext_net_list
+              - 25
+            $tag26:
+              get_param:
+              - ext_net_list
+              - 26
+            $tag27:
+              get_param:
+              - ext_net_list
+              - 27
+            $tag28:
+              get_param:
+              - ext_net_list
+              - 28
+            $tag29:
+              get_param:
+              - ext_net_list
+              - 29
+            $tag30:
+              get_param:
+              - ext_net_list
+              - 30
+            $tag31:
+              get_param:
+              - ext_net_list
+              - 31
+            $tag32:
+              get_param:
+              - ext_net_list
+              - 32
+            $tag33:
+              get_param:
+              - ext_net_list
+              - 33
+            $tag34:
+              get_param:
+              - ext_net_list
+              - 34
+            $tag35:
+              get_param:
+              - ext_net_list
+              - 35
+            $tag36:
+              get_param:
+              - ext_net_list
+              - 36
+            $tag37:
+              get_param:
+              - ext_net_list
+              - 37
+            $tag38:
+              get_param:
+              - ext_net_list
+              - 38
+            $tag39:
+              get_param:
+              - ext_net_list
+              - 39
+            $tag40:
+              get_param:
+              - ext_net_list
+              - 40
+            $tag41:
+              get_param:
+              - ext_net_list
+              - 41
+            $tag42:
+              get_param:
+              - ext_net_list
+              - 42
+            $tag43:
+              get_param:
+              - ext_net_list
+              - 43
+            $tag44:
+              get_param:
+              - ext_net_list
+              - 44
+            $tag45:
+              get_param:
+              - ext_net_list
+              - 45
+            $tag46:
+              get_param:
+              - ext_net_list
+              - 46
+            $tag47:
+              get_param:
+              - ext_net_list
+              - 47
+            $tag48:
+              get_param:
+              - ext_net_list
+              - 48
+            $tag49:
+              get_param:
+              - ext_net_list
+              - 49
+            $tag50:
+              get_param:
+              - ext_net_list
+              - 50
+            $tag51:
+              get_param:
+              - ext_net_list
+              - 51
+            $tag52:
+              get_param:
+              - ext_net_list
+              - 52
+            $tag53:
+              get_param:
+              - ext_net_list
+              - 53
+            $tag54:
+              get_param:
+              - ext_net_list
+              - 54
+            $tag55:
+              get_param:
+              - ext_net_list
+              - 55
+            $tag56:
+              get_param:
+              - ext_net_list
+              - 56
+            $tag57:
+              get_param:
+              - ext_net_list
+              - 57
+            $tag58:
+              get_param:
+              - ext_net_list
+              - 58
+            $tag59:
+              get_param:
+              - ext_net_list
+              - 59
+            $tag60:
+              get_param:
+              - ext_net_list
+              - 60
+            $tag61:
+              get_param:
+              - ext_net_list
+              - 61
+            $tag62:
+              get_param:
+              - ext_net_list
+              - 62
+            $tag63:
+              get_param:
+              - ext_net_list
+              - 63
+          template: |
+            {
+              "subnet_list": "INTERNALnet0 $inet1tag $extlist",
+              "INTERNALnet0": {
+                "id": "$intnet0",
+                "subnet_id": "$intsnet0",
+                "cidr": "169.254.0.0/16",
+                "default_gateway": ""
+              },
+              "INTERNALnet1": {
+                "id": "$intnet1",
+                "subnet_id": "$intsnet1",
+                "cidr": "169.254.0.0/16",
+                "default_gateway": ""
+              },
+              "$tag00": {
+                "cidr": "$cidr00",
+                "default_gateway": "$gw00",
+                "mtu_size": "$mtu00"
+              },
+              "$tag01": {
+                "cidr": "$cidr01",
+                "default_gateway": "$gw01",
+                "mtu_size": "$mtu01"
+              },
+              "$tag02": {
+                "cidr": "$cidr02",
+                "default_gateway": "$gw02",
+                "mtu_size": "$mtu02"
+              },
+              "$tag03": {
+                "cidr": "$cidr03",
+                "default_gateway": "$gw03",
+                "mtu_size": "$mtu03"
+              },
+              "$tag04": {
+                "cidr": "$cidr04",
+                "default_gateway": "$gw04",
+                "mtu_size": "$mtu04"
+              },
+              "$tag05": {
+                "cidr": "$cidr05",
+                "default_gateway": "$gw05",
+                "mtu_size": "$mtu05"
+              },
+              "$tag06": {
+                "cidr": "$cidr06",
+                "default_gateway": "$gw06",
+                "mtu_size": "$mtu06"
+              },
+              "$tag07": {
+                "cidr": "$cidr07",
+                "default_gateway": "$gw07",
+                "mtu_size": "$mtu07"
+              },
+              "$tag08": {
+                "cidr": "$cidr08",
+                "default_gateway": "$gw08",
+                "mtu_size": "$mtu08"
+              },
+              "$tag09": {
+                "cidr": "$cidr09",
+                "default_gateway": "$gw09",
+                "mtu_size": "$mtu09"
+              },
+              "$tag10": {
+                "cidr": "$cidr10",
+                "default_gateway": "$gw10",
+                "mtu_size": "$mtu10"
+              },
+              "$tag11": {
+                "cidr": "$cidr11",
+                "default_gateway": "$gw11",
+                "mtu_size": "$mtu11"
+              },
+              "$tag12": {
+                "cidr": "$cidr12",
+                "default_gateway": "$gw12",
+                "mtu_size": "$mtu12"
+              },
+              "$tag13": {
+                "cidr": "$cidr13",
+                "default_gateway": "$gw13",
+                "mtu_size": "$mtu13"
+              },
+              "$tag14": {
+                "cidr": "$cidr14",
+                "default_gateway": "$gw14",
+                "mtu_size": "$mtu14"
+              },
+              "$tag15": {
+                "cidr": "$cidr15",
+                "default_gateway": "$gw15",
+                "mtu_size": "$mtu15"
+              },
+              "$tag16": {
+                "cidr": "$cidr16",
+                "default_gateway": "$gw16",
+                "mtu_size": "$mtu16"
+              },
+              "$tag17": {
+                "cidr": "$cidr17",
+                "default_gateway": "$gw17",
+                "mtu_size": "$mtu17"
+              },
+              "$tag18": {
+                "cidr": "$cidr18",
+                "default_gateway": "$gw18",
+                "mtu_size": "$mtu18"
+              },
+              "$tag19": {
+                "cidr": "$cidr19",
+                "default_gateway": "$gw19",
+                "mtu_size": "$mtu19"
+              },
+              "$tag20": {
+                "cidr": "$cidr20",
+                "default_gateway": "$gw20",
+                "mtu_size": "$mtu20"
+              },
+              "$tag21": {
+                "cidr": "$cidr21",
+                "default_gateway": "$gw21",
+                "mtu_size": "$mtu21"
+              },
+              "$tag22": {
+                "cidr": "$cidr22",
+                "default_gateway": "$gw22",
+                "mtu_size": "$mtu22"
+              },
+              "$tag23": {
+                "cidr": "$cidr23",
+                "default_gateway": "$gw23",
+                "mtu_size": "$mtu23"
+              },
+              "$tag24": {
+                "cidr": "$cidr24",
+                "default_gateway": "$gw24",
+                "mtu_size": "$mtu24"
+              },
+              "$tag25": {
+                "cidr": "$cidr25",
+                "default_gateway": "$gw25",
+                "mtu_size": "$mtu25"
+              },
+              "$tag26": {
+                "cidr": "$cidr26",
+                "default_gateway": "$gw26",
+                "mtu_size": "$mtu26"
+              },
+              "$tag27": {
+                "cidr": "$cidr27",
+                "default_gateway": "$gw27",
+                "mtu_size": "$mtu27"
+              },
+              "$tag28": {
+                "cidr": "$cidr28",
+                "default_gateway": "$gw28",
+                "mtu_size": "$mtu28"
+              },
+              "$tag29": {
+                "cidr": "$cidr29",
+                "default_gateway": "$gw29",
+                "mtu_size": "$mtu29"
+              },
+              "$tag30": {
+                "cidr": "$cidr30",
+                "default_gateway": "$gw30",
+                "mtu_size": "$mtu30"
+              },
+              "$tag31": {
+                "cidr": "$cidr31",
+                "default_gateway": "$gw31",
+                "mtu_size": "$mtu31"
+              },
+              "$tag32": {
+                "cidr": "$cidr32",
+                "default_gateway": "$gw32",
+                "mtu_size": "$mtu32"
+              },
+              "$tag33": {
+                "cidr": "$cidr33",
+                "default_gateway": "$gw33",
+                "mtu_size": "$mtu33"
+              },
+              "$tag34": {
+                "cidr": "$cidr34",
+                "default_gateway": "$gw34",
+                "mtu_size": "$mtu34"
+              },
+              "$tag35": {
+                "cidr": "$cidr35",
+                "default_gateway": "$gw35",
+                "mtu_size": "$mtu35"
+              },
+              "$tag36": {
+                "cidr": "$cidr36",
+                "default_gateway": "$gw36",
+                "mtu_size": "$mtu36"
+              },
+              "$tag37": {
+                "cidr": "$cidr37",
+                "default_gateway": "$gw37",
+                "mtu_size": "$mtu37"
+              },
+              "$tag38": {
+                "cidr": "$cidr38",
+                "default_gateway": "$gw38",
+                "mtu_size": "$mtu38"
+              },
+              "$tag39": {
+                "cidr": "$cidr39",
+                "default_gateway": "$gw39",
+                "mtu_size": "$mtu39"
+              },
+              "$tag40": {
+                "cidr": "$cidr40",
+                "default_gateway": "$gw40",
+                "mtu_size": "$mtu40"
+              },
+              "$tag41": {
+                "cidr": "$cidr41",
+                "default_gateway": "$gw41",
+                "mtu_size": "$mtu41"
+              },
+              "$tag42": {
+                "cidr": "$cidr42",
+                "default_gateway": "$gw42",
+                "mtu_size": "$mtu42"
+              },
+              "$tag43": {
+                "cidr": "$cidr43",
+                "default_gateway": "$gw43",
+                "mtu_size": "$mtu43"
+              },
+              "$tag44": {
+                "cidr": "$cidr44",
+                "default_gateway": "$gw44",
+                "mtu_size": "$mtu44"
+              },
+              "$tag45": {
+                "cidr": "$cidr45",
+                "default_gateway": "$gw45",
+                "mtu_size": "$mtu45"
+              },
+              "$tag46": {
+                "cidr": "$cidr46",
+                "default_gateway": "$gw46",
+                "mtu_size": "$mtu46"
+              },
+              "$tag47": {
+                "cidr": "$cidr47",
+                "default_gateway": "$gw47",
+                "mtu_size": "$mtu47"
+              },
+              "$tag48": {
+                "cidr": "$cidr48",
+                "default_gateway": "$gw48",
+                "mtu_size": "$mtu48"
+              },
+              "$tag49": {
+                "cidr": "$cidr49",
+                "default_gateway": "$gw49",
+                "mtu_size": "$mtu49"
+              },
+              "$tag50": {
+                "cidr": "$cidr50",
+                "default_gateway": "$gw50",
+                "mtu_size": "$mtu50"
+              },
+              "$tag51": {
+                "cidr": "$cidr51",
+                "default_gateway": "$gw51",
+                "mtu_size": "$mtu51"
+              },
+              "$tag52": {
+                "cidr": "$cidr52",
+                "default_gateway": "$gw52",
+                "mtu_size": "$mtu52"
+              },
+              "$tag53": {
+                "cidr": "$cidr53",
+                "default_gateway": "$gw53",
+                "mtu_size": "$mtu53"
+              },
+              "$tag54": {
+                "cidr": "$cidr54",
+                "default_gateway": "$gw54",
+                "mtu_size": "$mtu54"
+              },
+              "$tag55": {
+                "cidr": "$cidr55",
+                "default_gateway": "$gw55",
+                "mtu_size": "$mtu55"
+              },
+              "$tag56": {
+                "cidr": "$cidr56",
+                "default_gateway": "$gw56",
+                "mtu_size": "$mtu56"
+              },
+              "$tag57": {
+                "cidr": "$cidr57",
+                "default_gateway": "$gw57",
+                "mtu_size": "$mtu57"
+              },
+              "$tag58": {
+                "cidr": "$cidr58",
+                "default_gateway": "$gw58",
+                "mtu_size": "$mtu58"
+              },
+              "$tag59": {
+                "cidr": "$cidr59",
+                "default_gateway": "$gw59",
+                "mtu_size": "$mtu59"
+              },
+              "$tag60": {
+                "cidr": "$cidr60",
+                "default_gateway": "$gw60",
+                "mtu_size": "$mtu60"
+              },
+              "$tag61": {
+                "cidr": "$cidr61",
+                "default_gateway": "$gw61",
+                "mtu_size": "$mtu61"
+              },
+              "$tag62": {
+                "cidr": "$cidr62",
+                "default_gateway": "$gw62",
+                "mtu_size": "$mtu62"
+              },
+              "$tag63": {
+                "cidr": "$cidr63",
+                "default_gateway": "$gw63",
+                "mtu_size": "$mtu63"
+              }
+            }
+    PrivateKey:
+      description: Private SSH key for pre-install intra-VM communication.
+      value:
+      - UNSUPPORTED_RESOURCE_shared_keypair
+    Version:
+      description: |
+        Template file version number. This should be updated
+        each time a non-comment change is made to this file.
+      value: K1
+    PublicKey:
+      description: Public SSH key for pre-install intra-VM communication.
+      value:
+      - UNSUPPORTED_RESOURCE_shared_keypair
+    TotalPairCount:
+      description: |
+        This string will evaluate to the number of PairGroups in the VNF.
+      value:
+        get_input: total_vm_pairs
+    IntNetInfo:
+      description: Internal network attributes.
+      value:
+        INTERNALnet0:
+          cidr: 169.254.0.0/16
+          default_gateway: ''
+          id:
+            str_replace:
+              params:
+                $val:
+                  get_resource: int_ctrl0_network
+              template: $val
+          subnet_id:
+            str_replace:
+              params:
+                $val:
+                  get_resource: int_ctrl0_subnet_0
+              template: $val
+        INTERNALnet1:
+          cidr: 169.254.0.0/16
+          default_gateway: ''
+          id:
+            str_replace:
+              params:
+                $val:
+                  get_resource: int_ctrl1_network
+              template: $val
+          subnet_id:
+            str_replace:
+              params:
+                $val:
+                  get_resource: int_ctrl1_subnet_0
+              template: $val
+    OpenSec:
+      description: Open security group.
+      value: Shared_Sec_Grp
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.heat.nest_common
+    capabilities:
+      feature_int_ctrl0_network:
+      - int_ctrl0_network
+      - feature
+      attachment_int_ctrl0_network:
+      - int_ctrl0_network
+      - attachment
+      end_point_int_ctrl0_network:
+      - int_ctrl0_network
+      - end_point
+      attachment_int_ctrl1_network:
+      - int_ctrl1_network
+      - attachment
+      end_point_int_ctrl1_network:
+      - int_ctrl1_network
+      - end_point
+      link_int_ctrl1_network:
+      - int_ctrl1_network
+      - link
+      feature_Shared_Sec_Grp:
+      - Shared_Sec_Grp
+      - feature
+      feature_int_ctrl1_network:
+      - int_ctrl1_network
+      - feature
+      link_int_ctrl0_network:
+      - int_ctrl0_network
+      - link
+    requirements:
+      dependency_int_ctrl0_network:
+      - int_ctrl0_network
+      - dependency
+      dependency_Shared_Sec_Grp:
+      - Shared_Sec_Grp
+      - dependency
+      dependency_int_ctrl1_network:
+      - int_ctrl1_network
+      - dependency
+      port_Shared_Sec_Grp:
+      - Shared_Sec_Grp
+      - port
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichNfcNamingFunction/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichNfcNamingFunction/out/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..974f694
--- /dev/null
@@ -0,0 +1,2210 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Main
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+- openecomp_index:
+    file: openecomp/_index.yml
+topology_template:
+  inputs:
+    cfed_flavor_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: cfed_flavor_name
+      type: string
+      description: CDL of cfed flavor values.
+      default: nd.c8r32d15s1e15
+    cfed_sigv6_ipmap_sideB_0_fixed_dbaas:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: cfed_sigv6_ipmap_sideB_0_fixed_dbaas
+      type: list
+      description: IP list for this IP usage type.
+      default:
+      - 2001:1890:1001:218c::24:3
+      - 2001:1890:1001:218c::24:4
+      entry_schema:
+        type: string
+    license_reference:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: license_reference
+      type: string
+      description: Reference string used in algorithmic license key generation.
+      default: tas02DLTASapril2015
+    cfed_sig_ipmap_sideB_0_fixed_dbaas:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: cfed_sig_ipmap_sideB_0_fixed_dbaas
+      type: list
+      description: IP list for this IP usage type.
+      default:
+      - 12.121.107.52
+      - 12.121.107.53
+      entry_schema:
+        type: string
+    gls_image_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: gls_image_name
+      type: string
+      description: Image for this VMtype.
+      default: USP_CTS_R35.15.01.0200.x86_64.qcow2
+    sig_subnet_id:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: sig_subnet_id
+      type: string
+      description: ID of the subnet associated with tag "sig".
+      default: 485d41b9-85f1-4c10-ac6c-2e88b05fd420
+    oam_sigv6_ipmap_sideA_sns0_fixed_dns:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: oam_sigv6_ipmap_sideA_sns0_fixed_dns
+      type: list
+      description: IP list for this IP usage type.
+      default:
+      - 2001:1890:1001:218C::24:a
+      entry_schema:
+        type: string
+    gls_dmz_ipmap_sideB_connectivity_ip:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: gls_dmz_ipmap_sideB_connectivity_ip
+      type: list
+      description: IP list for this IP usage type.
+      default:
+      - 192.20.195.13
+      entry_schema:
+        type: string
+    v6_ntp_server:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: v6_ntp_server
+      type: string
+      description: |
+        (optional) IPV6 NTP server list.
+        It is passed as a string instead of a CDL because
+        of how it is handled internally.
+      default: ''
+    oam_dmz_ipmap_sideA_mi0_fixed_default:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: oam_dmz_ipmap_sideA_mi0_fixed_default
+      type: list
+      description: IP list for this IP usage type.
+      default:
+      - 192.20.195.5
+      entry_schema:
+        type: string
+    system_prefix:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: system_prefix
+      type: string
+      description: System prefix used inside the VNF.
+      default: tas02
+    oam_sig_ipmap_sideA_sns0_fixed_dns:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: oam_sig_ipmap_sideA_sns0_fixed_dns
+      type: list
+      description: IP list for this IP usage type.
+      default:
+      - 12.121.107.42
+      entry_schema:
+        type: string
+    oam_image_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: oam_image_name
+      type: string
+      description: Image for this VMtype.
+      default: USP_CTS_R35.15.01.0200.x86_64.qcow2
+    net_types:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: net_types
+      type: list
+      description: CDL of subnet tags.
+      default:
+      - sigv6
+      - sig
+      - dmz
+      entry_schema:
+        type: string
+    cfed_sig_ipmap_sideA_0_float_published:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: cfed_sig_ipmap_sideA_0_float_published
+      type: list
+      description: IP list for this IP usage type.
+      default:
+      - 12.121.107.54
+      - 12.121.107.55
+      entry_schema:
+        type: string
+    cfed_sigv6_ipmap_sideA_0_fixed_dbaas:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: cfed_sigv6_ipmap_sideA_0_fixed_dbaas
+      type: list
+      description: IP list for this IP usage type.
+      default:
+      - 2001:1890:1001:218c::24:1
+      - 2001:1890:1001:218c::24:2
+      entry_schema:
+        type: string
+    v4_enum_server:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: v4_enum_server
+      type: string
+      description: |
+        (optional) IPV4 ENUM server list.
+        It is passed as a string instead of a CDL because
+        of how it is handled internally.
+      default: ''
+    cfed_image_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: cfed_image_name
+      type: string
+      description: Image for this VMtype.
+      default: USP_CTS_R35.15.01.0200.x86_64.qcow2
+    cfed_sigv6_ipmap_sideA_0_float_published:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: cfed_sigv6_ipmap_sideA_0_float_published
+      type: list
+      description: IP list for this IP usage type.
+      default:
+      - 2001:1890:1001:218c::24:5
+      - 2001:1890:1001:218c::24:6
+      entry_schema:
+        type: string
+    oam_flavor_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: oam_flavor_name
+      type: string
+      description: CDL of oam flavor values.
+      default: nd.c4r8d21s8e21
+    cfed_sig_ipmap_sideA_0_fixed_dbaas:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: cfed_sig_ipmap_sideA_0_fixed_dbaas
+      type: list
+      description: IP list for this IP usage type.
+      default:
+      - 12.121.107.50
+      - 12.121.107.51
+      entry_schema:
+        type: string
+    v6_enum_server:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: v6_enum_server
+      type: string
+      description: |
+        (optional) IPV6 ENUM server list.
+        It is passed as a string instead of a CDL because
+        of how it is handled internally.
+      default: ''
+    default_action:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: default_action
+      type: string
+      description: |
+        Default action for all VMs. This may be overridden for
+        specific VM groups, pairs or VMs via the ENV file.
+      default: install
+      constraints:
+      - valid_values:
+        - install
+        - recreate
+        - scale-in
+        - scale-out
+        - heal
+        - update
+    oam_dmz_ipmap_sideA_mi0_float_default:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: oam_dmz_ipmap_sideA_mi0_float_default
+      type: list
+      description: IP list for this IP usage type.
+      default:
+      - 192.20.195.6
+      entry_schema:
+        type: string
+    sigv6_cidr:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: sigv6_cidr
+      type: string
+      description: CIDR associated with tag "sigv6".
+      default: 2001:1890:1001:218c::/64
+    oam_volume_count:
+      label: volume count
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: oam_volume_count
+      type: float
+      description: number of OAM volumes needed
+      default: 2
+    storage_size:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: storage_size
+      type: float
+      description: Size of /storage in GB.
+      default: 4
+      constraints:
+      - in_range:
+        - 4
+        - null
+    oam_names:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: oam_names
+      type: list
+      description: CDL of oam VM names.
+      default:
+      - dpa2bctsf5001vm001
+      - dpa2bctsf5001vm002
+      entry_schema:
+        type: string
+    sig_default_gateway:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: sig_default_gateway
+      type: string
+      description: Default gateway IP address  associated with tag "sig".
+      default: 12.121.107.33
+    sig_net_id:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: sig_net_id
+      type: string
+      description: ID of the network associated with tag "sig".
+      default: 7aa61674-a934-49ab-a5f9-879a5864ec18
+    sigv6_v6_subnet_id:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: sigv6_v6_subnet_id
+      type: string
+      description: ID of the subnet associated with tag "sigv6".
+      default: 5effa3c8-5b6a-489f-90ca-4b7989d1edc5
+    sigv6_Sec_Grp:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: sigv6_Sec_Grp
+      type: string
+      description: UUID of the security group.
+      default: 1dd29b75-2240-49c4-8fd7-d0bf453c8e94
+    gls_names:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: gls_names
+      type: list
+      description: CDL of gls VM names.
+      default:
+      - dpa2bctsf5001vm013
+      - dpa2bctsf5001vm014
+      entry_schema:
+        type: string
+    local_enum_domain:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: local_enum_domain
+      type: string
+      description: Local ENUM domain value.
+      default: ''
+    vf_module_index:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: vf_module_index
+      type: float
+      description: Unique index for this VNF Module instance.
+      default: 0
+      constraints:
+      - in_range:
+        - 4
+        - null
+    backup_file1:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: backup_file1
+      type: string
+      description: |
+        <cURL path>/<backup file>
+        This is only used for restore (aka "disaster recovery").
+        The value only needs to go to the OAM pair.
+        Note that there is a 255 character limit on this value.
+      default: ''
+    vf_module_id:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: vf_module_id
+      type: string
+      description: Unique ID for this VNF Module instance.
+      default: ''
+    backup_file2:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: backup_file2
+      type: string
+      description: |
+        <cURL path>/<backup file>
+        This is only used for restore (aka "disaster recovery").
+        The value only needs to go to the OAM pair.
+        Note that there is a 255 character limit on this value.
+      default: ''
+    cfed_names:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: cfed_names
+      type: list
+      description: CDL of cfed VM names.
+      default:
+      - dpa2bctsf5001vm101
+      - dpa2bctsf5001vm102
+      - dpa2bctsf5001vm103
+      - dpa2bctsf5001vm104
+      entry_schema:
+        type: string
+    oam_dmz_ipmap_sideA_cnfg0_float_default:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: oam_dmz_ipmap_sideA_cnfg0_float_default
+      type: list
+      description: IP list for this IP usage type.
+      default:
+      - 192.20.195.4
+      entry_schema:
+        type: string
+    oam_sig_ipmap_sideB_sns0_fixed_dns:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: oam_sig_ipmap_sideB_sns0_fixed_dns
+      type: list
+      description: IP list for this IP usage type.
+      default:
+      - 12.121.107.43
+      entry_schema:
+        type: string
+    gls_flavor_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: gls_flavor_name
+      type: string
+      description: CDL of gls flavor values.
+      default: nd.c8r16d31s8e31
+    int_vlan_id:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: int_vlan_id
+      type: string
+      description: Optional VLAN associated with the (0th) internal network.
+      default: ''
+      constraints:
+      - pattern: '[0-9]*'
+    gls_dmz_ipmap_sideA_connectivity_ip:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: gls_dmz_ipmap_sideA_connectivity_ip
+      type: list
+      description: IP list for this IP usage type.
+      default:
+      - 192.20.195.11
+      entry_schema:
+        type: string
+    v4_ntp_server:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: v4_ntp_server
+      type: string
+      description: |
+        (optional) IPV4 NTP server list.
+        It is passed as a string instead of a CDL because
+        of how it is handled internally.
+      default: 135.2.77.29
+    certificate:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: certificate
+      type: string
+      description: |
+        Flag (any non-null string) to indicate that a certificate should be acquired.
+      default: ''
+    gls_sigv6_ipmap_sideA_0_float_diam_gls:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: gls_sigv6_ipmap_sideA_0_float_diam_gls
+      type: list
+      description: IP list for this IP usage type.
+      default:
+      - 2001:1890:1001:218c::24:7
+      entry_schema:
+        type: string
+    vnf_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: vnf_name
+      type: string
+      description: Unique name for this VNF instance.
+      default: foo
+    oam_sigv6_ipmap_sideB_sns0_fixed_dns:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: oam_sigv6_ipmap_sideB_sns0_fixed_dns
+      type: list
+      description: IP list for this IP usage type.
+      default:
+      - 2001:1890:1001:218C::24:b
+      entry_schema:
+        type: string
+    vf_module_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: vf_module_name
+      type: string
+      description: Unique name for this VNF module instance.
+      default: ctsf5000v_base_module
+    dmz_default_gateway:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: dmz_default_gateway
+      type: string
+      description: Default gateway IP address  associated with tag "dmz".
+      default: 192.20.195.1
+    vm_counts:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: vm_counts
+      type: json
+      description: |
+        Maps VM type tags to the number of pairs of that type.
+      default:
+        cfed: '2'
+        oam: '1'
+        gls: '1'
+    gls_volume_count:
+      label: volume count
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: gls_volume_count
+      type: float
+      description: number of GLS volumes needed
+    v6_dns_server:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: v6_dns_server
+      type: string
+      description: |
+        (optional) IPV6 DNS server list.
+        It is passed as a string instead of a CDL because
+        of how it is handled internally.
+      default: 2000:5420:0:510::50:69/.,2000:5420:0:510::50:70/.
+    vnf_id:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: vnf_id
+      type: string
+      description: Unique ID for this VNF instance.
+      default: ''
+    lcm_keypair:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: lcm_keypair
+      type: string
+      description: Keypair used for lifecycle management access.
+      default: ''
+    cfed_volume_ids_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: cfed_volume_ids_0
+      type: json
+      description: CFED Volume.
+    availability_zone_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: availability_zone_0
+      type: string
+      description: Availability zone name.
+      default: dpa2b-kvm-az01
+    availability_zone_1:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: availability_zone_1
+      type: string
+      description: Availability zone name.
+      default: dpa2b-kvm-az02
+    gls_sigv6_ipmap_sideA_connectivity_ip:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: gls_sigv6_ipmap_sideA_connectivity_ip
+      type: list
+      description: IP list for this IP usage type.
+      default:
+      - 2001:1890:1001:218c::24:8
+      entry_schema:
+        type: string
+    cfed_volume_ids_1:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: cfed_volume_ids_1
+      type: json
+      description: CFED Volume.
+    dmz_subnet_id:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: dmz_subnet_id
+      type: string
+      description: ID of the subnet associated with tag "dmz".
+      default: ef4874e2-2e6b-4165-84bd-cf75bcd1c474
+    sig_Sec_Grp:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: sig_Sec_Grp
+      type: string
+      description: UUID of the security group.
+      default: 1dd29b75-2240-49c4-8fd7-d0bf453c8e94
+    ssh_access_key:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: ssh_access_key
+      type: string
+      description: |
+        Optional SSH public key value for lifecycle management
+        administrative access.
+      default: ''
+    sig_cidr:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: sig_cidr
+      type: string
+      description: CIDR associated with tag "sig".
+      default: 12.121.107.32/27
+    local_dns_domain:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: local_dns_domain
+      type: string
+      description: Local DNS domain value.
+      default: tas02.ims.fs5000lab.com
+    dmz_net_id:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: dmz_net_id
+      type: string
+      description: ID of the network associated with tag "dmz".
+      default: 432868af-e8d0-42bf-953a-15b4e1d3a9b0
+    gls_sigv6_ipmap_sideB_connectivity_ip:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: gls_sigv6_ipmap_sideB_connectivity_ip
+      type: list
+      description: IP list for this IP usage type.
+      default:
+      - 2001:1890:1001:218c::24:9
+      entry_schema:
+        type: string
+    system_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: system_name
+      type: string
+      description: System name used inside the VNF.
+      default: tas02
+    dmz_Sec_Grp:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: dmz_Sec_Grp
+      type: string
+      description: UUID of the security group.
+      default: 1dd29b75-2240-49c4-8fd7-d0bf453c8e94
+    time_zone:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: time_zone
+      type: string
+      description: Time zone used inside the VNF.
+      default: America/Chicago
+    gls_volume_ids_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: gls_volume_ids_0
+      type: json
+      description: GLS Volume.
+    gls_volume_ids_1:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: gls_volume_ids_1
+      type: json
+      description: GLS Volume.
+    oam_volume_ids_1:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: oam_volume_ids_1
+      type: json
+      description: OAM Volume.
+    cfed_volume_count:
+      label: volume count
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: cfed_volume_count
+      type: float
+      description: number of CFED volumes needed
+      default: 2
+    oam_volume_ids_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: oam_volume_ids_0
+      type: json
+      description: OAM Volume.
+    oam_management_v6_source:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: oam_management_v6_source
+      type: string
+      description: Name of the OAM IP parameter to use.
+      default: ''
+    v4_dns_server:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: v4_dns_server
+      type: string
+      description: |
+        (optional) IPV4 DNS server list.
+        It is passed as a string instead of a CDL because
+        of how it is handled internally.
+      default: 135.1.250.169/.,135.1.250.170/.
+    oam_management_v4_source:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: oam_management_v4_source
+      type: string
+      description: Name of the OAM IP parameter to use.
+      default: oam_dmz_ipmap_sideA_mi0_float_default
+    install_config:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: install_config
+      type: string
+      description: JSON formatted string of install config values.
+      default: ' "application_name": "5420_cts", "default_remote_dns_domain": "./default",
+        "default_remote_enum_domain": "e164.arpa/default", "naming_delimiter": "-",
+        "naming_parsing": "flexible", "naming_type": "flexible3", "other_remote_dns_domain":
+        "", "other_remote_enum_domain": "", "remote_query_only": "no", "snmp_community":
+        "public", "subnet_info": { "INTERNALnet0": { "interface_label": "int0", "redundancy_mode":
+        "iipm", "vlan_tag": ""}, "INTERNALnet1": { "interface_label": "int1", "redundancy_mode":
+        "iipm", "vlan_tag": ""}, "dmz": { "interface_label": "oam", "redundancy_mode":
+        "eipm_arpndp", "vlan_tag": "", "connectivity_address": "", "detect_multiplier":
+        "3", "desired_minimum_tx_interval": "300", "required_minimum_rx_interval":
+        "300"}, "sig": { "interface_label": "sig", "redundancy_mode": "eipm_arpndp",
+        "vlan_tag": "", "connectivity_address": "", "detect_multiplier": "3", "desired_minimum_tx_interval":
+        "300", "required_minimum_rx_interval": "300"}, ,"sigv6": { "interface_label":
+        "sig", "redundancy_mode": "eipm_arpndp", "vlan_tag": "", "connectivity_address":
+        "", "detect_multiplier": "3", "desired_minimum_tx_interval": "300", "required_minimum_rx_interval":
+        "300"}, }, "svc_counts": { "sns": "1", "cfed": "1", "cnfg": "1", "gls": "1",
+        "mi": "1", "gos": "1"}, "use_sbpr": "yes"'
+    gls_dmz_ipmap_sideA_0_float_default:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: gls_dmz_ipmap_sideA_0_float_default
+      type: list
+      description: IP list for this IP usage type.
+      default:
+      - 192.20.195.12
+      entry_schema:
+        type: string
+    oam_dmz_ipmap_sideB_mi0_fixed_default:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: oam_dmz_ipmap_sideB_mi0_fixed_default
+      type: list
+      description: IP list for this IP usage type.
+      default:
+      - 192.20.195.7
+      entry_schema:
+        type: string
+    dmz_cidr:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: dmz_cidr
+      type: string
+      description: CIDR associated with tag "dmz".
+      default: 192.20.195.0/24
+    sigv6_net_id:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: sigv6_net_id
+      type: string
+      description: ID of the network associated with tag "sigv6".
+      default: 7aa61674-a934-49ab-a5f9-879a5864ec18
+    sigv6_default_gateway:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: sigv6_default_gateway
+      type: string
+      description: Default gateway IP address  associated with tag "sigv6".
+      default: 2001:1890:1001:218c::1
+    cloud_name_delimiter:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - base_att
+            source_type: HEAT
+            param_name: cloud_name_delimiter
+      type: string
+      description: Separator for cloud resource naming.
+      default: '-'
+  node_templates:
+    Reserve_Port_gls_sigv6_floating_v6_ip_0:
+      type: org.openecomp.resource.cp.v2.extNeutronCP
+      properties:
+        replacement_policy: AUTO
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        fixed_ips:
+        - subnet:
+            get_input: sigv6_v6_subnet_id
+          ip_address:
+            get_input:
+            - gls_sigv6_ipmap_sideA_0_float_diam_gls
+            - 0
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        name: Reserve_Port_gls_sigv6_floating_v6_ip_0
+        network_role_tag: sigv6
+        network:
+          get_input: sigv6_net_id
+      capabilities:
+        port_mirroring:
+          properties:
+            connection_point:
+              nf_type: ''
+              nfc_type: ''
+              nf_naming_code: ''
+              nfc_naming_code: ''
+              network_role: ''
+              pps_capacity: ''
+    Reserve_Port_cfed_sigv6_floating_v6_ip_0:
+      type: org.openecomp.resource.cp.v2.extNeutronCP
+      properties:
+        replacement_policy: AUTO
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        fixed_ips:
+        - subnet:
+            get_input: sigv6_v6_subnet_id
+          ip_address:
+            get_input:
+            - cfed_sigv6_ipmap_sideA_0_float_published
+            - 1
+        - subnet:
+            get_input: sigv6_v6_subnet_id
+          ip_address:
+            get_input:
+            - cfed_sigv6_ipmap_sideA_0_float_published
+            - 0
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        name: Reserve_Port_cfed_sigv6_floating_v6_ip_0
+        network_role_tag: sigv6
+        network:
+          get_input: sigv6_net_id
+      capabilities:
+        port_mirroring:
+          properties:
+            connection_point:
+              nf_type: ''
+              nfc_type: ''
+              nf_naming_code: ''
+              nfc_naming_code: ''
+              network_role: ''
+              pps_capacity: ''
+    cfed_RRG_1:
+      type: org.openecomp.resource.abstract.nodes.heat.cfed
+      directives:
+      - substitutable
+      properties:
+        backup_file1:
+          get_attribute:
+          - FORMATXLATE
+          - backup_file1
+        vf_module_id:
+          get_input: vf_module_id
+        backup_file2:
+          get_attribute:
+          - FORMATXLATE
+          - backup_file2
+        cfed_flavor_name:
+          get_input:
+          - cfed_flavor_name
+        cfed_names:
+          get_input:
+          - cfed_names
+        cfed_sigv6_ipmap_sideB_0_fixed_dbaas:
+          get_input:
+          - cfed_sigv6_ipmap_sideB_0_fixed_dbaas
+        role: other
+        cfed_sig_ipmap_sideB_0_fixed_dbaas:
+          get_input:
+          - cfed_sig_ipmap_sideB_0_fixed_dbaas
+        vnf_name:
+          get_input: vnf_name
+        usage_info:
+          get_attribute:
+          - FORMATXLATE
+          - usage_info
+        config_info:
+          '0':
+            vnic_info:
+              '0':
+              - binding_type: normal
+                count: '0'
+                subnet_count: '1'
+                allowed_subnets:
+                - INTERNALnet0
+              - subnet: INTERNALnet0
+                label: connectivity_ip;subnet=INTERNALnet0
+              '1':
+              - binding_type: normal
+                count: '0'
+                subnet_count: '1'
+                allowed_subnets:
+                - INTERNALnet1
+              - subnet: INTERNALnet1
+                label: connectivity_ip;subnet=INTERNALnet1
+              '2':
+              - binding_type: normal
+                count: '4'
+                subnet_count: '2'
+                allowed_subnets:
+                - sig
+                - sigv6
+              - subnet: sig
+                label: servicetype=cfed-0;fixed;nitype=dbaas;subnet=sig
+              - subnet: sigv6
+                label: servicetype=cfed-0;fixed;nitype=dbaas;subnet=sigv6
+              - subnet: sig
+                label: servicetype=cfed-0;float;nitype=published;subnet=sig
+              - subnet: sigv6
+                label: servicetype=cfed-0;float;nitype=published;subnet=sigv6
+          '1':
+            vnic_info:
+              '0':
+              - binding_type: normal
+                count: '0'
+                subnet_count: '1'
+                allowed_subnets:
+                - INTERNALnet0
+              - subnet: INTERNALnet0
+                label: connectivity_ip;subnet=INTERNALnet0
+              '1':
+              - binding_type: normal
+                count: '0'
+                subnet_count: '1'
+                allowed_subnets:
+                - INTERNALnet1
+              - subnet: INTERNALnet1
+                label: connectivity_ip;subnet=INTERNALnet1
+              '2':
+              - binding_type: normal
+                count: '2'
+                subnet_count: '2'
+                allowed_subnets:
+                - sig
+                - sigv6
+              - subnet: sig
+                label: servicetype=cfed-0;fixed;nitype=dbaas;subnet=sig
+              - subnet: sigv6
+                label: servicetype=cfed-0;fixed;nitype=dbaas;subnet=sigv6
+          v6_static_routes: '{}'
+          v6_default_gateway: sigv6
+          vnic_count: 3
+          v4_static_routes: '{}'
+          v4_default_gateway: sig
+          poolinfo: '["cfed-0", "gos-1"]'
+        group_index:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+        sig_subnet_id:
+          get_input:
+          - sig_subnet_id
+        port_cfed_1_sig_port_2_mac_requirements:
+          mac_count_required:
+            is_required: false
+        ssh_private_key:
+          get_attribute:
+          - NOKIA_LCP_Base
+          - PrivateKey
+        vf_module_name:
+          get_input: vf_module_name
+        service_template_filter:
+          substitute_service_template: nest_cfed_bServiceTemplate.yaml
+          count:
+            get_attribute:
+            - FORMATXLATE
+            - vm_counts
+            - cfed
+          mandatory: false
+        port_cfed_1_int_ctrl0_port_0_network_role_tag: int_ctrl0
+        port_cfed_1_int_ctrl1_port_1_mac_requirements:
+          mac_count_required:
+            is_required: false
+        vnf_id:
+          get_input: vnf_id
+        int_ctrl1_Sec_Grp:
+          get_attribute:
+          - NOKIA_LCP_Base
+          - OpenSec
+        lcm_keypair:
+          get_attribute:
+          - FORMATXLATE
+          - lcm_keypair
+        port_cfed_1_sig_port_2_network_role_tag: sig
+        current_group_count:
+          get_attribute:
+          - FORMATXLATE
+          - vm_counts
+          - cfed
+        availability_zone_1:
+          get_input: availability_zone_1
+        sig_Sec_Grp:
+          get_input:
+          - sig_Sec_Grp
+        int_ctrl0_Sec_Grp:
+          get_attribute:
+          - NOKIA_LCP_Base
+          - OpenSec
+        net_info_str:
+          get_attribute:
+          - NOKIA_LCP_Base
+          - NetInfoStr
+        total_pair_count:
+          get_attribute:
+          - NOKIA_LCP_Base
+          - TotalPairCount
+        ssh_access_key:
+          get_attribute:
+          - FORMATXLATE
+          - ssh_access_key
+        int_ctrl0_net_id:
+          get_attribute:
+          - NOKIA_LCP_Base
+          - IntNetInfo
+          - INTERNALnet0
+          - id
+        int_ctrl1_net_id:
+          get_attribute:
+          - NOKIA_LCP_Base
+          - IntNetInfo
+          - INTERNALnet1
+          - id
+        port_cfed_1_sig_port_2_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        cfed_image_name:
+          get_input:
+          - cfed_image_name
+        pair2idx:
+          '22':
+            '0': 44
+            '1': 45
+          '23':
+            '0': 46
+            '1': 47
+          '24':
+            '0': 48
+            '1': 49
+          '25':
+            '0': 50
+            '1': 51
+          '26':
+            '0': 52
+            '1': 53
+          '27':
+            '0': 54
+            '1': 55
+          '28':
+            '0': 56
+            '1': 57
+          '29':
+            '0': 58
+            '1': 59
+          '10':
+            '0': 20
+            '1': 21
+          '11':
+            '0': 22
+            '1': 23
+          '12':
+            '0': 24
+            '1': 25
+          '13':
+            '0': 26
+            '1': 27
+          '14':
+            '0': 28
+            '1': 29
+          '15':
+            '0': 30
+            '1': 31
+          '16':
+            '0': 32
+            '1': 33
+          '17':
+            '0': 34
+            '1': 35
+          '18':
+            '0': 36
+            '1': 37
+          '19':
+            '0': 38
+            '1': 39
+          '0':
+            '0': 0
+            '1': 1
+          '1':
+            '0': 2
+            '1': 3
+          '2':
+            '0': 4
+            '1': 5
+          '3':
+            '0': 6
+            '1': 7
+          '4':
+            '0': 8
+            '1': 9
+          '5':
+            '0': 10
+            '1': 11
+          '6':
+            '0': 12
+            '1': 13
+          '7':
+            '0': 14
+            '1': 15
+          '8':
+            '0': 16
+            '1': 17
+          '9':
+            '0': 18
+            '1': 19
+          '20':
+            '0': 40
+            '1': 41
+          '21':
+            '0': 42
+            '1': 43
+        ssh_public_key:
+          get_attribute:
+          - NOKIA_LCP_Base
+          - PublicKey
+        vm_role: cfed
+        port_cfed_1_int_ctrl0_port_0_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        port_cfed_1_int_ctrl1_port_1_network_role_tag: int_ctrl1
+        port_cfed_1_int_ctrl0_port_0_mac_requirements:
+          mac_count_required:
+            is_required: false
+        group_id: '4'
+        install_config:
+          get_attribute:
+          - FORMATXLATE
+          - install_config
+        cfed_volume_1:
+          get_input:
+          - cfed_volume_ids_1
+        sig_net_id:
+          get_input:
+          - sig_net_id
+        sigv6_v6_subnet_id:
+          get_input:
+          - sigv6_v6_subnet_id
+        group_tag: cfed
+        port_cfed_1_int_ctrl1_port_1_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        vf_module_index:
+          get_input: vf_module_index
+        vm_type_tag: cfed
+        nfc_naming_code: cfed_changed_from_ui
+        nfc_code: pd_server_code
+        nfc_function: cfed_naming_function
+    cfed_RRG_0:
+      type: org.openecomp.resource.abstract.nodes.heat.cfed_1
+      directives:
+      - substitutable
+      properties:
+        cfed_flavor_name:
+          get_input:
+          - cfed_flavor_name
+        port_cfed_0_int_ctrl1_port_1_network_role_tag: int_ctrl1
+        usage_info:
+          get_attribute:
+          - FORMATXLATE
+          - usage_info
+        config_info:
+          '0':
+            vnic_info:
+              '0':
+              - binding_type: normal
+                count: '0'
+                subnet_count: '1'
+                allowed_subnets:
+                - INTERNALnet0
+              - subnet: INTERNALnet0
+                label: connectivity_ip;subnet=INTERNALnet0
+              '1':
+              - binding_type: normal
+                count: '0'
+                subnet_count: '1'
+                allowed_subnets:
+                - INTERNALnet1
+              - subnet: INTERNALnet1
+                label: connectivity_ip;subnet=INTERNALnet1
+              '2':
+              - binding_type: normal
+                count: '4'
+                subnet_count: '2'
+                allowed_subnets:
+                - sig
+                - sigv6
+              - subnet: sig
+                label: servicetype=cfed-0;fixed;nitype=dbaas;subnet=sig
+              - subnet: sigv6
+                label: servicetype=cfed-0;fixed;nitype=dbaas;subnet=sigv6
+              - subnet: sig
+                label: servicetype=cfed-0;float;nitype=published;subnet=sig
+              - subnet: sigv6
+                label: servicetype=cfed-0;float;nitype=published;subnet=sigv6
+          '1':
+            vnic_info:
+              '0':
+              - binding_type: normal
+                count: '0'
+                subnet_count: '1'
+                allowed_subnets:
+                - INTERNALnet0
+              - subnet: INTERNALnet0
+                label: connectivity_ip;subnet=INTERNALnet0
+              '1':
+              - binding_type: normal
+                count: '0'
+                subnet_count: '1'
+                allowed_subnets:
+                - INTERNALnet1
+              - subnet: INTERNALnet1
+                label: connectivity_ip;subnet=INTERNALnet1
+              '2':
+              - binding_type: normal
+                count: '2'
+                subnet_count: '2'
+                allowed_subnets:
+                - sig
+                - sigv6
+              - subnet: sig
+                label: servicetype=cfed-0;fixed;nitype=dbaas;subnet=sig
+              - subnet: sigv6
+                label: servicetype=cfed-0;fixed;nitype=dbaas;subnet=sigv6
+          v6_static_routes: '{}'
+          v6_default_gateway: sigv6
+          vnic_count: 3
+          v4_static_routes: '{}'
+          v4_default_gateway: sig
+          poolinfo: '["cfed-0", "gos-1"]'
+        group_index:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+        sig_subnet_id:
+          get_input:
+          - sig_subnet_id
+        ssh_private_key:
+          get_attribute:
+          - NOKIA_LCP_Base
+          - PrivateKey
+        service_template_filter:
+          substitute_service_template: nest_cfed_aServiceTemplate.yaml
+          count:
+            get_attribute:
+            - FORMATXLATE
+            - vm_counts
+            - cfed
+          mandatory: false
+        port_cfed_0_sig_port_2_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        int_ctrl1_Sec_Grp:
+          get_attribute:
+          - NOKIA_LCP_Base
+          - OpenSec
+        current_group_count:
+          get_attribute:
+          - FORMATXLATE
+          - vm_counts
+          - cfed
+        port_cfed_0_int_ctrl0_port_0_mac_requirements:
+          mac_count_required:
+            is_required: false
+        total_pair_count:
+          get_attribute:
+          - NOKIA_LCP_Base
+          - TotalPairCount
+        cfed_sig_ipmap_sideA_0_float_published:
+          get_input:
+          - cfed_sig_ipmap_sideA_0_float_published
+        int_ctrl1_net_id:
+          get_attribute:
+          - NOKIA_LCP_Base
+          - IntNetInfo
+          - INTERNALnet1
+          - id
+        cfed_sigv6_ipmap_sideA_0_fixed_dbaas:
+          get_input:
+          - cfed_sigv6_ipmap_sideA_0_fixed_dbaas
+        cfed_image_name:
+          get_input:
+          - cfed_image_name
+        port_cfed_0_int_ctrl0_port_0_network_role_tag: int_ctrl0
+        cfed_sigv6_ipmap_sideA_0_float_published:
+          get_input:
+          - cfed_sigv6_ipmap_sideA_0_float_published
+        cfed_sig_ipmap_sideA_0_fixed_dbaas:
+          get_input:
+          - cfed_sig_ipmap_sideA_0_fixed_dbaas
+        ssh_public_key:
+          get_attribute:
+          - NOKIA_LCP_Base
+          - PublicKey
+        port_cfed_0_int_ctrl0_port_0_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        sig_net_id:
+          get_input:
+          - sig_net_id
+        sigv6_v6_subnet_id:
+          get_input:
+          - sigv6_v6_subnet_id
+        port_cfed_0_int_ctrl1_port_1_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: false
+          floating_ip_count_required:
+            is_required: false
+        vf_module_index:
+          get_input: vf_module_index
+        port_cfed_0_int_ctrl1_port_1_mac_requirements:
+          mac_count_required:
+            is_required: false
+        backup_file1:
+          get_attribute:
+          - FORMATXLATE
+          - backup_file1
+        vf_module_id:
+          get_input: vf_module_id
+        backup_file2:
+          get_attribute:
+          - FORMATXLATE
+          - backup_file2
+        port_cfed_0_sig_port_2_mac_requirements:
+          mac_count_required:
+            is_required: false
+        cfed_names:
+          get_input:
+          - cfed_names
+        role: other
+        vnf_name:
+          get_input: vnf_name
+        vf_module_name:
+          get_input: vf_module_name
+        vnf_id:
+          get_input: vnf_id
+        lcm_keypair:
+          get_attribute:
+          - FORMATXLATE
+          - lcm_keypair
+        availability_zone_0:
+          get_input: availability_zone_0
+        sig_Sec_Grp:
+          get_input:
+          - sig_Sec_Grp
+        int_ctrl0_Sec_Grp:
+          get_attribute:
+          - NOKIA_LCP_Base
+          - OpenSec
+        net_info_str:
+          get_attribute:
+          - NOKIA_LCP_Base
+          - NetInfoStr
+        ssh_access_key:
+          get_attribute:
+          - FORMATXLATE
+          - ssh_access_key
+        int_ctrl0_net_id:
+          get_attribute:
+          - NOKIA_LCP_Base
+          - IntNetInfo
+          - INTERNALnet0
+          - id
+        port_cfed_0_sig_port_2_network_role_tag: sig
+        pair2idx:
+          '22':
+            '0': 44
+            '1': 45
+          '23':
+            '0': 46
+            '1': 47
+          '24':
+            '0': 48
+            '1': 49
+          '25':
+            '0': 50
+            '1': 51
+          '26':
+            '0': 52
+            '1': 53
+          '27':
+            '0': 54
+            '1': 55
+          '28':
+            '0': 56
+            '1': 57
+          '29':
+            '0': 58
+            '1': 59
+          '10':
+            '0': 20
+            '1': 21
+          '11':
+            '0': 22
+            '1': 23
+          '12':
+            '0': 24
+            '1': 25
+          '13':
+            '0': 26
+            '1': 27
+          '14':
+            '0': 28
+            '1': 29
+          '15':
+            '0': 30
+            '1': 31
+          '16':
+            '0': 32
+            '1': 33
+          '17':
+            '0': 34
+            '1': 35
+          '18':
+            '0': 36
+            '1': 37
+          '19':
+            '0': 38
+            '1': 39
+          '0':
+            '0': 0
+            '1': 1
+          '1':
+            '0': 2
+            '1': 3
+          '2':
+            '0': 4
+            '1': 5
+          '3':
+            '0': 6
+            '1': 7
+          '4':
+            '0': 8
+            '1': 9
+          '5':
+            '0': 10
+            '1': 11
+          '6':
+            '0': 12
+            '1': 13
+          '7':
+            '0': 14
+            '1': 15
+          '8':
+            '0': 16
+            '1': 17
+          '9':
+            '0': 18
+            '1': 19
+          '20':
+            '0': 40
+            '1': 41
+          '21':
+            '0': 42
+            '1': 43
+        vm_role: cfed
+        group_id: '4'
+        install_config:
+          get_attribute:
+          - FORMATXLATE
+          - install_config
+        cfed_volume_0:
+          get_input:
+          - cfed_volume_ids_0
+        group_tag: cfed
+        vm_type_tag: cfed
+        nfc_naming_code: cfed_changed_from_ui
+        nfc_code: pd_server_code
+        nfc_function: cfed_naming_function
+    cfed_volume_RRG:
+      type: org.openecomp.resource.abstract.nodes.heat.base_att_cfed_nested_volume
+      directives:
+      - substitutable
+      properties:
+        service_template_filter:
+          substitute_service_template: base_att_cfed_nested_volumeServiceTemplate.yaml
+          count:
+            get_input: cfed_volume_count
+          mandatory: false
+        size:
+          get_input: storage_size
+        index:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+    Reserve_Port_cfed_sig_floating_ip_0:
+      type: org.openecomp.resource.cp.v2.extNeutronCP
+      properties:
+        replacement_policy: AUTO
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        fixed_ips:
+        - subnet:
+            get_input: sig_subnet_id
+          ip_address:
+            get_input:
+            - cfed_sig_ipmap_sideA_0_float_published
+            - 1
+        - subnet:
+            get_input: sig_subnet_id
+          ip_address:
+            get_input:
+            - cfed_sig_ipmap_sideA_0_float_published
+            - 0
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        name: Reserve_Port_cfed_sig_floating_ip_0
+        network_role_tag: sig
+        network:
+          get_input: sig_net_id
+      capabilities:
+        port_mirroring:
+          properties:
+            connection_point:
+              nf_type: ''
+              nfc_type: ''
+              nf_naming_code: ''
+              nfc_naming_code: ''
+              network_role: ''
+              pps_capacity: ''
+    NOKIA_LCP_Base:
+      type: org.openecomp.resource.abstract.nodes.heat.nest_common
+      directives:
+      - substitutable
+      properties:
+        total_vm_pairs:
+          get_attribute:
+          - FORMATXLATE
+          - total_vm_pairs
+        service_template_filter:
+          substitute_service_template: nest_commonServiceTemplate.yaml
+        ext_net_list:
+        - sigv6
+        - sig
+        - dmz
+        int_net_count: 2
+        ext_net_info:
+          get_attribute:
+          - FORMATXLATE
+          - ext_net_info
+        vnf_name:
+          get_input: vnf_name
+        int_net1_label:
+          '1': ''
+          '2': INTERNALnet1
+  groups:
+    base_att_volume_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/base_att_volume.yaml
+        description: |
+          AT&T compliant HOT file.
+      members:
+      - cfed_volume_RRG
+      - gls_volume_RRG
+      - oam_volume_RRG
+    base_att_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/base_att.yaml
+        description: |
+          AT&T compliant HOT file.
+      members:
+      - Reserve_Port_cfed_sigv6_floating_v6_ip_0
+      - Reserve_Port_cfed_sig_floating_ip_0
+      - cfed_RRG_1
+      - NOKIA_LCP_Base
+      - cfed_RRG_0
+  outputs:
+    cfed_volume_ids_0:
+      description: CFED Volume UUID
+      value:
+        get_attribute:
+        - cfed_volume_RRG
+        - cfed_volume_0
+    cfed_volume_ids_1:
+      description: CFED Volume UUID
+      value:
+        get_attribute:
+        - cfed_volume_RRG
+        - cfed_volume_1
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichNfcNamingFunction/out/nest_cfed_aServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichNfcNamingFunction/out/nest_cfed_aServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..d4cbd94
--- /dev/null
@@ -0,0 +1,1188 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: nest_cfed_a
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+- openecomp_index:
+    file: openecomp/_index.yml
+node_types:
+  org.openecomp.resource.vfc.compute.nodes.heat.cfed:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+  inputs:
+    cfed_flavor_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: VM flavor name.
+    port_cfed_0_sig_port_2_subnetpoolid:
+      type: string
+      required: true
+    port_cfed_0_int_ctrl1_port_1_network_role:
+      type: string
+      required: true
+    port_cfed_0_int_ctrl1_port_1_network_role_tag:
+      type: string
+      required: true
+    usage_info:
+      hidden: false
+      immutable: false
+      type: json
+      description: |
+        Per-VM/vNIC data for members of this elastic group.
+    config_info:
+      hidden: false
+      immutable: false
+      type: json
+      description: Service configuration and network layout.
+    group_index:
+      hidden: false
+      immutable: false
+      type: float
+      description: Index of the VM pair within the elastic group.
+      constraints:
+      - in_range:
+        - 0
+        - null
+    sig_subnet_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: UUID of the subnet.
+    workload_context:
+      label: Workload Context
+      hidden: false
+      immutable: false
+      type: string
+      description: Workload context for this VNF.
+    ssh_private_key:
+      hidden: true
+      immutable: false
+      type: string
+      description: Private SSH key for VM to VM communication in this system.
+    port_cfed_0_sig_port_2_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_cfed_0_int_ctrl0_port_0_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    port_cfed_0_sig_port_2_order:
+      type: integer
+      required: true
+    port_cfed_0_sig_port_2_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    int_ctrl1_Sec_Grp:
+      hidden: false
+      immutable: false
+      type: string
+      description: Internal network 0 security group UUID.
+    current_group_count:
+      hidden: false
+      immutable: false
+      type: string
+      description: |
+        Current VM pair count within the elastic group.
+    port_cfed_0_int_ctrl0_port_0_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    total_pair_count:
+      hidden: false
+      immutable: false
+      type: string
+      description: |
+        This string will evaluate to the number of PairGroups in the VNF.
+    cfed_sig_ipmap_sideA_0_float_published:
+      hidden: false
+      immutable: false
+      type: list
+      description: VM/subnet/usage IP address list. Keyed by group index.
+      entry_schema:
+        type: string
+    port_cfed_0_sig_port_2_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    int_ctrl1_net_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: Internal network 1.
+    cfed_sigv6_ipmap_sideA_0_fixed_dbaas:
+      hidden: false
+      immutable: false
+      type: list
+      description: VM/subnet/usage IP address list. Keyed by group index.
+      entry_schema:
+        type: string
+    cfed_image_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: VM image name.
+    port_cfed_0_int_ctrl0_port_0_network_role_tag:
+      type: string
+      required: true
+    port_cfed_0_int_ctrl0_port_0_related_networks:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+    cfed_sigv6_ipmap_sideA_0_float_published:
+      hidden: false
+      immutable: false
+      type: list
+      description: VM/subnet/usage IP address list. Keyed by group index.
+      entry_schema:
+        type: string
+    cfed_sig_ipmap_sideA_0_fixed_dbaas:
+      hidden: false
+      immutable: false
+      type: list
+      description: VM/subnet/usage IP address list. Keyed by group index.
+      entry_schema:
+        type: string
+    port_cfed_0_int_ctrl0_port_0_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    ssh_public_key:
+      hidden: false
+      immutable: false
+      type: string
+      description: Public SSH key for VM to VM communication in this system.
+    port_cfed_0_int_ctrl0_port_0_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_cfed_0_int_ctrl1_port_1_order:
+      type: integer
+      required: true
+    sig_net_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: UUID of the network.
+    sigv6_v6_subnet_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: UUID of the subnet.
+    port_cfed_0_int_ctrl1_port_1_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    vf_module_index:
+      hidden: false
+      immutable: false
+      type: float
+      description: Unique index for this VNF Module instance.
+    port_cfed_0_int_ctrl1_port_1_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    backup_file1:
+      hidden: false
+      immutable: false
+      type: string
+      description: |
+        <cURL path>/<backup file>
+        This is only used for restore (aka "disaster recovery") and
+        only referenced on OAM-A.
+    vf_module_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: Unique ID for this VNF module instance.
+    backup_file2:
+      hidden: false
+      immutable: false
+      type: string
+      description: |
+        <cURL path>/<backup file>
+        This is only used for restore (aka "disaster recovery") and
+        only referenced on OAM-A.
+    port_cfed_0_sig_port_2_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    cfed_names:
+      hidden: false
+      immutable: false
+      type: list
+      description: VM name list.
+      entry_schema:
+        type: string
+    role:
+      hidden: false
+      immutable: false
+      type: string
+      description: VM role during LCM activities.
+      constraints:
+      - valid_values:
+        - oam
+        - other
+    port_cfed_0_int_ctrl1_port_1_related_networks:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+    vnf_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: Unique name for this VNF instance.
+    vf_module_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: Unique name for this VNF module instance.
+    port_cfed_0_int_ctrl0_port_0_order:
+      type: integer
+      required: true
+    vnf_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: Unique ID for this VNF instance.
+    port_cfed_0_int_ctrl0_port_0_network_role:
+      type: string
+      required: true
+    lcm_keypair:
+      hidden: false
+      immutable: false
+      type: string
+      description: Lifecycle management access key pair.
+      constraints: [
+        ]
+    port_cfed_0_int_ctrl1_port_1_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    availability_zone_0:
+      hidden: false
+      immutable: false
+      type: string
+      description: VM availability zone.
+    sig_Sec_Grp:
+      hidden: false
+      immutable: false
+      type: string
+      description: UUID of the security group.
+    int_ctrl0_Sec_Grp:
+      hidden: false
+      immutable: false
+      type: string
+      description: Internal network 0 security group UUID.
+    net_info_str:
+      hidden: false
+      immutable: false
+      type: string
+      description: |
+        JSON formatted string with all network info.
+        This is redundant with int_net_info and ext_net_info except
+        in Kilo there is no way to convert json to string for
+        output as a personality file.
+    ssh_access_key:
+      hidden: false
+      immutable: false
+      type: string
+      description: Public SSH key for external access.
+    int_ctrl0_net_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: Internal network 0.
+    port_cfed_0_sig_port_2_network_role_tag:
+      type: string
+      required: true
+    port_cfed_0_sig_port_2_related_networks:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+    environment_context:
+      label: Environment Context
+      hidden: false
+      immutable: false
+      type: string
+      description: Environment context for this VNF.
+    port_cfed_0_int_ctrl0_port_0_subnetpoolid:
+      type: string
+      required: true
+    pair2idx:
+      hidden: false
+      immutable: false
+      type: json
+      description: Map group index to VMtype index.
+    vm_role:
+      hidden: false
+      immutable: false
+      type: string
+      description: Unique role for these VMs.
+    port_cfed_0_int_ctrl1_port_1_subnetpoolid:
+      type: string
+      required: true
+    group_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: ID number of the elastic group this pair is a member of.
+    install_config:
+      hidden: false
+      immutable: false
+      type: string
+      description: JSON formatted string of install config values.
+    cfed_volume_0:
+      hidden: false
+      immutable: false
+      type: json
+      description: CFED Volume.
+    group_tag:
+      hidden: false
+      immutable: false
+      type: string
+      description: Key into "usage_info" for members of this elastic group.
+    port_cfed_0_sig_port_2_network_role:
+      type: string
+      required: true
+    port_cfed_0_int_ctrl1_port_1_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+  node_templates:
+    cfed_0_sig_port_2:
+      type: org.openecomp.resource.cp.v2.extNeutronCP
+      properties:
+        subnetpoolid:
+          get_input: port_cfed_0_sig_port_2_subnetpoolid
+        allowed_address_pairs:
+        - ip_address:
+            str_replace:
+              template: $ip$prefixsz
+              params:
+                $ip:
+                  get_input:
+                  - cfed_sig_ipmap_sideA_0_float_published
+                  - get_input: group_index
+                $prefixsz: /32
+        - ip_address:
+            str_replace:
+              template: $ip$prefixsz
+              params:
+                $ip:
+                  get_input:
+                  - cfed_sigv6_ipmap_sideA_0_float_published
+                  - get_input: group_index
+                $prefixsz: /128
+        binding:vnic_type: normal
+        related_networks:
+          get_input: port_cfed_0_sig_port_2_related_networks
+        network:
+          get_input: sig_net_id
+        replacement_policy: AUTO
+        ip_requirements:
+          get_input: port_cfed_0_sig_port_2_ip_requirements
+        security_groups:
+        - get_input: sig_Sec_Grp
+        network_role:
+          get_input: port_cfed_0_sig_port_2_network_role
+        fixed_ips:
+        - subnet:
+            get_input: sig_subnet_id
+          ip_address:
+            get_input:
+            - cfed_sig_ipmap_sideA_0_fixed_dbaas
+            - get_input: group_index
+        - subnet:
+            get_input: sigv6_v6_subnet_id
+          ip_address:
+            get_input:
+            - cfed_sigv6_ipmap_sideA_0_fixed_dbaas
+            - get_input: group_index
+        mac_requirements:
+          get_input: port_cfed_0_sig_port_2_mac_requirements
+        subinterface_indicator: false
+        name:
+          str_replace:
+            template: $vnf_name_cfed_0_sig_port_2
+            params:
+              $vnf_name:
+                get_input: vnf_name
+        exCP_naming:
+          get_input: port_cfed_0_sig_port_2_exCP_naming
+        vlan_requirements:
+          get_input: port_cfed_0_sig_port_2_vlan_requirements
+        network_role_tag:
+          get_input: port_cfed_0_sig_port_2_network_role_tag
+        order:
+          get_input: port_cfed_0_sig_port_2_order
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: cfed_server_0
+          relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        port_mirroring:
+          properties:
+            connection_point:
+              nf_type: ''
+              nfc_type: ''
+              nf_naming_code: ''
+              nfc_naming_code: cfed_server_0
+              network_role:
+                get_input: port_cfed_0_sig_port_2_network_role
+              pps_capacity: ''
+    cfed_0_int_ctrl0_port_0:
+      type: org.openecomp.resource.cp.v2.extNeutronCP
+      properties:
+        subnetpoolid:
+          get_input: port_cfed_0_int_ctrl0_port_0_subnetpoolid
+        allowed_address_pairs: [
+          ]
+        binding:vnic_type: normal
+        related_networks:
+          get_input: port_cfed_0_int_ctrl0_port_0_related_networks
+        network:
+          get_input: int_ctrl0_net_id
+        replacement_policy: AUTO
+        ip_requirements:
+          get_input: port_cfed_0_int_ctrl0_port_0_ip_requirements
+        security_groups:
+        - get_input: int_ctrl0_Sec_Grp
+        network_role:
+          get_input: port_cfed_0_int_ctrl0_port_0_network_role
+        fixed_ips: [
+          ]
+        mac_requirements:
+          get_input: port_cfed_0_int_ctrl0_port_0_mac_requirements
+        subinterface_indicator: false
+        name:
+          str_replace:
+            template: $vnf_name_cfed_0_int_ctrl0_port_0
+            params:
+              $vnf_name:
+                get_input: vnf_name
+        exCP_naming:
+          get_input: port_cfed_0_int_ctrl0_port_0_exCP_naming
+        vlan_requirements:
+          get_input: port_cfed_0_int_ctrl0_port_0_vlan_requirements
+        network_role_tag:
+          get_input: port_cfed_0_int_ctrl0_port_0_network_role_tag
+        order:
+          get_input: port_cfed_0_int_ctrl0_port_0_order
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: cfed_server_0
+          relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        port_mirroring:
+          properties:
+            connection_point:
+              nf_type: ''
+              nfc_type: ''
+              nf_naming_code: ''
+              nfc_naming_code: cfed_server_0
+              network_role:
+                get_input: port_cfed_0_int_ctrl0_port_0_network_role
+              pps_capacity: ''
+    cfed_server_0:
+      type: org.openecomp.resource.vfc.compute.nodes.heat.cfed
+      properties:
+        flavor:
+          get_input: cfed_flavor_name
+        key_name:
+          get_input: lcm_keypair
+        availability_zone:
+          get_input: availability_zone_0
+        image:
+          get_input: cfed_image_name
+        image_update_policy: REBUILD
+        metadata:
+          backup_file1:
+            get_input: backup_file1
+          total_pair_count:
+            get_input: total_pair_count
+          vf_module_id:
+            get_input: vf_module_id
+          backup_file2:
+            get_input: backup_file2
+          image:
+            get_input: cfed_image_name
+          member_index: '0'
+          certificate: ''
+          vnf_name:
+            get_input: vnf_name
+          created_at: now
+          environment_context:
+            get_input: environment_context
+          group_type: pair
+          group_index:
+            get_input: group_index
+          workload_context:
+            get_input: workload_context
+          vf_module_name:
+            get_input: vf_module_name
+          default_action: install
+          flavor:
+            get_input: cfed_flavor_name
+          vm_role:
+            get_input: vm_role
+          side_action:
+            get_input:
+            - usage_info
+            - defaults
+            - action
+            - '0'
+          group_id:
+            get_input: group_id
+          vnf_id:
+            get_input: vnf_id
+          current_group_count:
+            get_input: current_group_count
+          action: install
+          vf_module_index:
+            get_input: vf_module_index
+        config_drive: true
+        personality:
+          /storage/cloud/discover/GlobalConfig.json:
+            str_replace:
+              template: ' { "v4_dns_server": "$v4dns", "v6_dns_server": "$v6dns",
+                "v4_enum_server": "$v4enum", "v6_enum_server": "$v6enum", "v4_ntp_server":
+                "$v4ntp", "v6_ntp_server": "$v6ntp", "time_zone": "$time_zone", "system_name":
+                "$sysname", "system_prefix": "$sysprefix", "license_reference": "$license_ref",
+                "local_dns_domain": "$local_dns", "local_enum_domain": "$local_enum",
+                $cfg } '
+              params:
+                $v4dns:
+                  get_input:
+                  - usage_info
+                  - v4_dns_server
+                $v6enum:
+                  get_input:
+                  - usage_info
+                  - v6_enum_serve
+                $v6ntp:
+                  get_input:
+                  - usage_info
+                  - v6_ntp_server
+                $v6dns:
+                  get_input:
+                  - usage_info
+                  - v6_dns_server
+                $v4enum:
+                  get_input:
+                  - usage_info
+                  - v4_enum_server
+                $sysname:
+                  get_input:
+                  - usage_info
+                  - system_name
+                $local_enum:
+                  get_input:
+                  - usage_info
+                  - local_enum_domain
+                $v4ntp:
+                  get_input:
+                  - usage_info
+                  - v4_ntp_server
+                $cfg:
+                  get_input: install_config
+                $local_dns:
+                  get_input:
+                  - usage_info
+                  - local_dns_domain
+                $sysprefix:
+                  get_input:
+                  - usage_info
+                  - system_prefix
+                $license_ref:
+                  get_input:
+                  - usage_info
+                  - license_reference
+                $time_zone:
+                  get_input:
+                  - usage_info
+                  - time_zone
+          /storage/cloud/.ssh/SSHpubkey:
+            get_input: ssh_public_key
+          /storage/cloud/CLDsetup_data.json:
+            str_replace:
+              template: ' { "drbd_uuid": "", "int_vlan_id": "$int_vlan_id", "random":
+                "$random", "SSHpubkeyFile": "/storage/cloud/.ssh/SSHpubkey", "SSHprivkeyFile":
+                "/storage/cloud/.ssh/SSHprivkey", "SSHaccessKey": "$acckey", "stk":
+                "$stk", "uuid_storage": "$uuid_storage" }'
+              params:
+                $random: UNSUPPORTED_RESOURCE_cfed_RandomA
+                $stk:
+                  get_input:
+                  - usage_info
+                  - stack
+                $uuid_storage:
+                  get_input:
+                  - cfed_volume_0
+                  - get_attribute:
+                    - cfed_mapidx_0
+                    - idx0
+                $acckey:
+                  get_input: ssh_access_key
+                $int_vlan_id:
+                  get_input:
+                  - usage_info
+                  - int_vlan_id
+          /storage/cloud/discover/VMinfo.json:
+            str_replace:
+              template: ' { "vm_suffix": "$vmname", "service_config": $servcfg, "v4_default_gateway":
+                "$v4gateway", "v6_default_gateway": "$v6gateway", "v4_static_routes":
+                $v4static_routes, "v6_static_routes": $v6static_routes, "IPinfo":
+                [$ipinfo], "Netinfo": $netinfo } '
+              params:
+                $ipinfo:
+                  str_replace:
+                    template: '{"count": "$ip_count00", "binding_type": "$btype00",
+                      "mac_address": "$mac00", "assigned_ips": [$assgip00], "label2info":
+                      [$l2info00]} ,{"count": "$ip_count01", "binding_type": "$btype01",
+                      "mac_address": "$mac01", "assigned_ips": [$assgip01], "label2info":
+                      [$l2info01]} ,{"count": "$ip_count02", "binding_type": "$btype02",
+                      "mac_address": "$mac02", "assigned_ips": [$assgip02], "label2info":
+                      [$l2info02]} '
+                    params:
+                      $btype00: normal
+                      $btype01: normal
+                      $btype02: normal
+                      $assgip00:
+                        list_join:
+                        - ','
+                        - - list_join:
+                            - ''
+                            - - '"'
+                              - get_attribute:
+                                - cfed_0_int_ctrl0_port_0
+                                - fixed_ips
+                                - 0
+                                - ip_address
+                              - '"'
+                      $assgip01:
+                        list_join:
+                        - ','
+                        - - list_join:
+                            - ''
+                            - - '"'
+                              - get_attribute:
+                                - cfed_0_int_ctrl1_port_1
+                                - fixed_ips
+                                - 0
+                                - ip_address
+                              - '"'
+                      $assgip02:
+                        list_join:
+                        - ','
+                        - - list_join:
+                            - ''
+                            - - '"'
+                              - get_attribute:
+                                - cfed_0_sig_port_2
+                                - fixed_ips
+                                - 0
+                                - ip_address
+                              - '"'
+                          - list_join:
+                            - ''
+                            - - '"'
+                              - get_attribute:
+                                - cfed_0_sig_port_2
+                                - fixed_ips
+                                - 1
+                                - ip_address
+                              - '"'
+                          - list_join:
+                            - ''
+                            - - '"'
+                              - get_attribute:
+                                - cfed_0_sig_port_2
+                                - fixed_ips
+                                - 2
+                                - ip_address
+                              - '"'
+                          - list_join:
+                            - ''
+                            - - '"'
+                              - get_attribute:
+                                - cfed_0_sig_port_2
+                                - fixed_ips
+                                - 3
+                                - ip_address
+                              - '"'
+                      $mac01:
+                        get_attribute:
+                        - cfed_0_int_ctrl1_port_1
+                        - mac_address
+                      $mac02:
+                        get_attribute:
+                        - cfed_0_sig_port_2
+                        - mac_address
+                      $mac00:
+                        get_attribute:
+                        - cfed_0_int_ctrl0_port_0
+                        - mac_address
+                      $l2info01:
+                        str_replace:
+                          template: '{"label": "connectivity_ip", "subnet": "INTERNALnet1",
+                            "ip": "$ip00"}'
+                          params:
+                            $ip00: ''
+                      $l2info00:
+                        str_replace:
+                          template: '{"label": "connectivity_ip", "subnet": "INTERNALnet0",
+                            "ip": "$ip00"}'
+                          params:
+                            $ip00: ''
+                      $ip_count00: 0
+                      $l2info02:
+                        str_replace:
+                          template: '{"label": "servicetype=cfed-0;fixed;nitype=dbaas;subnet=sig",
+                            "subnet": "sig", "ip": "$ip00"},{"label": "servicetype=cfed-0;fixed;nitype=dbaas;subnet=sigv6",
+                            "subnet": "sigv6", "ip": "$ip01"},{"label": "servicetype=cfed-0;float;nitype=published;subnet=sig",
+                            "subnet": "sig", "ip": "$ip02"},{"label": "servicetype=cfed-0;float;nitype=published;subnet=sigv6",
+                            "subnet": "sigv6", "ip": "$ip03"}'
+                          params:
+                            $ip01:
+                              get_input:
+                              - cfed_sigv6_ipmap_sideA_0_fixed_dbaas
+                              - get_input: group_index
+                            $ip02:
+                              get_input:
+                              - cfed_sig_ipmap_sideA_0_float_published
+                              - get_input: group_index
+                            $ip03:
+                              get_input:
+                              - cfed_sigv6_ipmap_sideA_0_float_published
+                              - get_input: group_index
+                            $ip00:
+                              get_input:
+                              - cfed_sig_ipmap_sideA_0_fixed_dbaas
+                              - get_input: group_index
+                      $ip_count01: 0
+                      $ip_count02: 4
+                $netinfo:
+                  get_input: net_info_str
+                $v4gateway:
+                  get_input:
+                  - config_info
+                  - v4_default_gateway
+                $servcfg:
+                  get_input:
+                  - config_info
+                  - poolinfo
+                $v4static_routes:
+                  get_input:
+                  - config_info
+                  - v4_static_routes
+                $v6gateway:
+                  get_input:
+                  - config_info
+                  - v6_default_gateway
+                $vmname:
+                  get_input:
+                  - cfed_names
+                  - get_attribute:
+                    - cfed_mapidx_0
+                    - idx0
+                $v6static_routes:
+                  get_input:
+                  - config_info
+                  - v6_static_routes
+          /storage/cloud/.ssh/SSHprivkey:
+            get_input: ssh_private_key
+        name:
+          get_input:
+          - cfed_names
+          - get_attribute:
+            - cfed_mapidx_0
+            - idx0
+    cfed_0_int_ctrl1_port_1:
+      type: org.openecomp.resource.cp.v2.extNeutronCP
+      properties:
+        subnetpoolid:
+          get_input: port_cfed_0_int_ctrl1_port_1_subnetpoolid
+        allowed_address_pairs: [
+          ]
+        binding:vnic_type: normal
+        related_networks:
+          get_input: port_cfed_0_int_ctrl1_port_1_related_networks
+        network:
+          get_input: int_ctrl1_net_id
+        replacement_policy: AUTO
+        ip_requirements:
+          get_input: port_cfed_0_int_ctrl1_port_1_ip_requirements
+        security_groups:
+        - get_input: int_ctrl1_Sec_Grp
+        network_role:
+          get_input: port_cfed_0_int_ctrl1_port_1_network_role
+        fixed_ips: [
+          ]
+        mac_requirements:
+          get_input: port_cfed_0_int_ctrl1_port_1_mac_requirements
+        subinterface_indicator: false
+        name:
+          str_replace:
+            template: $vnf_name_cfed_0_int_ctrl1_port_1
+            params:
+              $vnf_name:
+                get_input: vnf_name
+        exCP_naming:
+          get_input: port_cfed_0_int_ctrl1_port_1_exCP_naming
+        vlan_requirements:
+          get_input: port_cfed_0_int_ctrl1_port_1_vlan_requirements
+        network_role_tag:
+          get_input: port_cfed_0_int_ctrl1_port_1_network_role_tag
+        order:
+          get_input: port_cfed_0_int_ctrl1_port_1_order
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: cfed_server_0
+          relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        port_mirroring:
+          properties:
+            connection_point:
+              nf_type: ''
+              nfc_type: ''
+              nf_naming_code: ''
+              nfc_naming_code: cfed_server_0
+              network_role:
+                get_input: port_cfed_0_int_ctrl1_port_1_network_role
+              pps_capacity: ''
+  groups:
+    nest_cfed_a_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/nest_cfed_a.yaml
+        description: Generate resources for a pair of 'cfed' VMs. ...
+      members:
+      - cfed_0_sig_port_2
+      - cfed_0_int_ctrl0_port_0
+      - cfed_server_0
+      - cfed_0_int_ctrl1_port_1
+  outputs:
+    Version:
+      description: |
+        Template file version number. This should be updated
+        each time a non-comment change is made to this file.
+      value: K1
+    VMA-EXT_IPS:
+      description: IP addresses assigned to the first external network.
+      value:
+      - list_join:
+        - ''
+        - - '"'
+          - get_attr:
+            - cfed_0_sig_port_2
+            - fixed_ips
+            - 0
+            - ip_address
+          - '"'
+      - list_join:
+        - ''
+        - - '"'
+          - get_attr:
+            - cfed_0_sig_port_2
+            - fixed_ips
+            - 1
+            - ip_address
+          - '"'
+      - list_join:
+        - ''
+        - - '"'
+          - get_attr:
+            - cfed_0_sig_port_2
+            - fixed_ips
+            - 2
+            - ip_address
+          - '"'
+      - list_join:
+        - ''
+        - - '"'
+          - get_attr:
+            - cfed_0_sig_port_2
+            - fixed_ips
+            - 3
+            - ip_address
+          - '"'
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.heat.cfed_1
+    capabilities:
+      memory_cfed_server_0:
+      - cfed_server_0
+      - memory
+      network.incoming.bytes.rate_cfed_0_int_ctrl1_port_1:
+      - cfed_0_int_ctrl1_port_1
+      - network.incoming.bytes.rate
+      disk.device.iops_cfed_server_0:
+      - cfed_server_0
+      - disk.device.iops
+      attachment_cfed_0_int_ctrl0_port_0:
+      - cfed_0_int_ctrl0_port_0
+      - attachment
+      network.incoming.bytes.rate_cfed_0_int_ctrl0_port_0:
+      - cfed_0_int_ctrl0_port_0
+      - network.incoming.bytes.rate
+      attachment_cfed_0_int_ctrl1_port_1:
+      - cfed_0_int_ctrl1_port_1
+      - attachment
+      feature_cfed_0_sig_port_2:
+      - cfed_0_sig_port_2
+      - feature
+      disk.write.bytes_cfed_server_0:
+      - cfed_server_0
+      - disk.write.bytes
+      network.incoming.bytes_cfed_0_sig_port_2:
+      - cfed_0_sig_port_2
+      - network.incoming.bytes
+      network.outgoing.packets.rate_cfed_0_int_ctrl1_port_1:
+      - cfed_0_int_ctrl1_port_1
+      - network.outgoing.packets.rate
+      disk.write.requests_cfed_server_0:
+      - cfed_server_0
+      - disk.write.requests
+      network.outgoing.packets.rate_cfed_0_int_ctrl0_port_0:
+      - cfed_0_int_ctrl0_port_0
+      - network.outgoing.packets.rate
+      disk.device.read.requests.rate_cfed_server_0:
+      - cfed_server_0
+      - disk.device.read.requests.rate
+      network.incoming.bytes_cfed_0_int_ctrl1_port_1:
+      - cfed_0_int_ctrl1_port_1
+      - network.incoming.bytes
+      network.incoming.bytes.rate_cfed_0_sig_port_2:
+      - cfed_0_sig_port_2
+      - network.incoming.bytes.rate
+      disk.write.bytes.rate_cfed_server_0:
+      - cfed_server_0
+      - disk.write.bytes.rate
+      network.outgoing.bytes_cfed_0_int_ctrl0_port_0:
+      - cfed_0_int_ctrl0_port_0
+      - network.outgoing.bytes
+      host_cfed_server_0:
+      - cfed_server_0
+      - host
+      network.outgoing.bytes_cfed_0_int_ctrl1_port_1:
+      - cfed_0_int_ctrl1_port_1
+      - network.outgoing.bytes
+      network.outgoing.bytes.rate_cfed_0_int_ctrl1_port_1:
+      - cfed_0_int_ctrl1_port_1
+      - network.outgoing.bytes.rate
+      instance_cfed_server_0:
+      - cfed_server_0
+      - instance
+      network.incoming.bytes_cfed_0_int_ctrl0_port_0:
+      - cfed_0_int_ctrl0_port_0
+      - network.incoming.bytes
+      network.outgoing.bytes.rate_cfed_0_int_ctrl0_port_0:
+      - cfed_0_int_ctrl0_port_0
+      - network.outgoing.bytes.rate
+      disk.device.write.bytes_cfed_server_0:
+      - cfed_server_0
+      - disk.device.write.bytes
+      network.outgoing.packets.rate_cfed_0_sig_port_2:
+      - cfed_0_sig_port_2
+      - network.outgoing.packets.rate
+      network.outpoing.packets_cfed_0_int_ctrl1_port_1:
+      - cfed_0_int_ctrl1_port_1
+      - network.outpoing.packets
+      network.incoming.packets_cfed_0_sig_port_2:
+      - cfed_0_sig_port_2
+      - network.incoming.packets
+      cpu_util_cfed_server_0:
+      - cfed_server_0
+      - cpu_util
+      attachment_cfed_0_sig_port_2:
+      - cfed_0_sig_port_2
+      - attachment
+      disk.device.capacity_cfed_server_0:
+      - cfed_server_0
+      - disk.device.capacity
+      feature_cfed_0_int_ctrl0_port_0:
+      - cfed_0_int_ctrl0_port_0
+      - feature
+      network.incoming.packets_cfed_0_int_ctrl1_port_1:
+      - cfed_0_int_ctrl1_port_1
+      - network.incoming.packets
+      forwarder_cfed_0_sig_port_2:
+      - cfed_0_sig_port_2
+      - forwarder
+      cpu_cfed_server_0:
+      - cfed_server_0
+      - cpu
+      disk.device.allocation_cfed_server_0:
+      - cfed_server_0
+      - disk.device.allocation
+      disk.iops_cfed_server_0:
+      - cfed_server_0
+      - disk.iops
+      disk.device.write.requests.rate_cfed_server_0:
+      - cfed_server_0
+      - disk.device.write.requests.rate
+      disk.read.bytes_cfed_server_0:
+      - cfed_server_0
+      - disk.read.bytes
+      scalable_cfed_server_0:
+      - cfed_server_0
+      - scalable
+      binding_cfed_0_int_ctrl0_port_0:
+      - cfed_0_int_ctrl0_port_0
+      - binding
+      disk.device.read.requests_cfed_server_0:
+      - cfed_server_0
+      - disk.device.read.requests
+      binding_cfed_0_int_ctrl1_port_1:
+      - cfed_0_int_ctrl1_port_1
+      - binding
+      network.incoming.packets.rate_cfed_0_int_ctrl0_port_0:
+      - cfed_0_int_ctrl0_port_0
+      - network.incoming.packets.rate
+      network.incoming.packets.rate_cfed_0_int_ctrl1_port_1:
+      - cfed_0_int_ctrl1_port_1
+      - network.incoming.packets.rate
+      disk.device.usage_cfed_server_0:
+      - cfed_server_0
+      - disk.device.usage
+      binding_cfed_0_sig_port_2:
+      - cfed_0_sig_port_2
+      - binding
+      network.incoming.packets.rate_cfed_0_sig_port_2:
+      - cfed_0_sig_port_2
+      - network.incoming.packets.rate
+      disk.device.read.bytes_cfed_server_0:
+      - cfed_server_0
+      - disk.device.read.bytes
+      binding_cfed_server_0:
+      - cfed_server_0
+      - binding
+      memory.resident_cfed_server_0:
+      - cfed_server_0
+      - memory.resident
+      forwarder_cfed_0_int_ctrl1_port_1:
+      - cfed_0_int_ctrl1_port_1
+      - forwarder
+      vcpus_cfed_server_0:
+      - cfed_server_0
+      - vcpus
+      disk.latency_cfed_server_0:
+      - cfed_server_0
+      - disk.latency
+      network.outgoing.bytes.rate_cfed_0_sig_port_2:
+      - cfed_0_sig_port_2
+      - network.outgoing.bytes.rate
+      disk.read.bytes.rate_cfed_server_0:
+      - cfed_server_0
+      - disk.read.bytes.rate
+      forwarder_cfed_0_int_ctrl0_port_0:
+      - cfed_0_int_ctrl0_port_0
+      - forwarder
+      disk.read.requests_cfed_server_0:
+      - cfed_server_0
+      - disk.read.requests
+      disk.device.latency_cfed_server_0:
+      - cfed_server_0
+      - disk.device.latency
+      os_cfed_server_0:
+      - cfed_server_0
+      - os
+      network.outpoing.packets_cfed_0_int_ctrl0_port_0:
+      - cfed_0_int_ctrl0_port_0
+      - network.outpoing.packets
+      feature_cfed_server_0:
+      - cfed_server_0
+      - feature
+      disk.ephemeral.size_cfed_server_0:
+      - cfed_server_0
+      - disk.ephemeral.size
+      disk.root.size_cfed_server_0:
+      - cfed_server_0
+      - disk.root.size
+      network.incoming.packets_cfed_0_int_ctrl0_port_0:
+      - cfed_0_int_ctrl0_port_0
+      - network.incoming.packets
+      feature_cfed_0_int_ctrl1_port_1:
+      - cfed_0_int_ctrl1_port_1
+      - feature
+      endpoint_cfed_server_0:
+      - cfed_server_0
+      - endpoint
+      network.outgoing.bytes_cfed_0_sig_port_2:
+      - cfed_0_sig_port_2
+      - network.outgoing.bytes
+      network.outpoing.packets_cfed_0_sig_port_2:
+      - cfed_0_sig_port_2
+      - network.outpoing.packets
+      disk.device.read.bytes.rate_cfed_server_0:
+      - cfed_server_0
+      - disk.device.read.bytes.rate
+      disk.usage_cfed_server_0:
+      - cfed_server_0
+      - disk.usage
+      disk.allocation_cfed_server_0:
+      - cfed_server_0
+      - disk.allocation
+      cpu.delta_cfed_server_0:
+      - cfed_server_0
+      - cpu.delta
+      disk.write.requests.rate_cfed_server_0:
+      - cfed_server_0
+      - disk.write.requests.rate
+      disk.device.write.bytes.rate_cfed_server_0:
+      - cfed_server_0
+      - disk.device.write.bytes.rate
+      disk.capacity_cfed_server_0:
+      - cfed_server_0
+      - disk.capacity
+      disk.device.write.requests_cfed_server_0:
+      - cfed_server_0
+      - disk.device.write.requests
+      memory.usage_cfed_server_0:
+      - cfed_server_0
+      - memory.usage
+      port_mirroring_cfed_0_sig_port_2:
+      - cfed_0_sig_port_2
+      - port_mirroring
+      port_mirroring_cfed_0_int_ctrl0_port_0:
+      - cfed_0_int_ctrl0_port_0
+      - port_mirroring
+      port_mirroring_cfed_0_int_ctrl1_port_1:
+      - cfed_0_int_ctrl1_port_1
+      - port_mirroring
+    requirements:
+      dependency_cfed_server_0:
+      - cfed_server_0
+      - dependency
+      dependency_cfed_0_int_ctrl0_port_0:
+      - cfed_0_int_ctrl0_port_0
+      - dependency
+      dependency_cfed_0_int_ctrl1_port_1:
+      - cfed_0_int_ctrl1_port_1
+      - dependency
+      link_cfed_0_int_ctrl1_port_1:
+      - cfed_0_int_ctrl1_port_1
+      - link
+      link_cfed_0_int_ctrl0_port_0:
+      - cfed_0_int_ctrl0_port_0
+      - link
+      link_cfed_0_sig_port_2:
+      - cfed_0_sig_port_2
+      - link
+      dependency_cfed_0_sig_port_2:
+      - cfed_0_sig_port_2
+      - dependency
+      local_storage_cfed_server_0:
+      - cfed_server_0
+      - local_storage
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichNfcNamingFunction/out/nest_cfed_bServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichNfcNamingFunction/out/nest_cfed_bServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..7e26005
--- /dev/null
@@ -0,0 +1,1111 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: nest_cfed_b
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+- openecomp_index:
+    file: openecomp/_index.yml
+node_types:
+  org.openecomp.resource.vfc.compute.nodes.heat.cfed:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+  inputs:
+    cfed_flavor_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: VM flavor name.
+    cfed_sigv6_ipmap_sideB_0_fixed_dbaas:
+      hidden: false
+      immutable: false
+      type: list
+      description: VM/subnet/usage IP address list. Keyed by group index.
+      entry_schema:
+        type: string
+    port_cfed_1_int_ctrl0_port_0_subnetpoolid:
+      type: string
+      required: true
+    cfed_sig_ipmap_sideB_0_fixed_dbaas:
+      hidden: false
+      immutable: false
+      type: list
+      description: VM/subnet/usage IP address list. Keyed by group index.
+      entry_schema:
+        type: string
+    port_cfed_1_sig_port_2_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    usage_info:
+      hidden: false
+      immutable: false
+      type: json
+      description: |
+        Per-VM/vNIC data for members of this elastic group.
+    port_cfed_1_sig_port_2_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    config_info:
+      hidden: false
+      immutable: false
+      type: json
+      description: Service configuration and network layout.
+    group_index:
+      hidden: false
+      immutable: false
+      type: float
+      description: Index of the VM pair within the elastic group.
+      constraints:
+      - in_range:
+        - 0
+        - null
+    sig_subnet_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: UUID of the subnet.
+    workload_context:
+      label: Workload Context
+      hidden: false
+      immutable: false
+      type: string
+      description: Workload context for this VNF.
+    port_cfed_1_sig_port_2_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    ssh_private_key:
+      hidden: true
+      immutable: false
+      type: string
+      description: Private SSH key for VM to VM communication in this system.
+    port_cfed_1_sig_port_2_network_role:
+      type: string
+      required: true
+    port_cfed_1_int_ctrl1_port_1_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    port_cfed_1_int_ctrl0_port_0_network_role_tag:
+      type: string
+      required: true
+    int_ctrl1_Sec_Grp:
+      hidden: false
+      immutable: false
+      type: string
+      description: Internal network 0 security group UUID.
+    port_cfed_1_sig_port_2_network_role_tag:
+      type: string
+      required: true
+    current_group_count:
+      hidden: false
+      immutable: false
+      type: string
+      description: |
+        Current VM pair count within the elastic group.
+    port_cfed_1_int_ctrl0_port_0_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    total_pair_count:
+      hidden: false
+      immutable: false
+      type: string
+      description: |
+        This string will evaluate to the number of PairGroups in the VNF.
+    int_ctrl1_net_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: Internal network 1.
+    port_cfed_1_sig_port_2_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    cfed_image_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: VM image name.
+    port_cfed_1_int_ctrl1_port_1_subnetpoolid:
+      type: string
+      required: true
+    port_cfed_1_int_ctrl1_port_1_related_networks:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+    ssh_public_key:
+      hidden: false
+      immutable: false
+      type: string
+      description: Public SSH key for VM to VM communication in this system.
+    port_cfed_1_int_ctrl1_port_1_network_role_tag:
+      type: string
+      required: true
+    port_cfed_1_sig_port_2_related_networks:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+    port_cfed_1_int_ctrl0_port_0_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    port_cfed_1_sig_port_2_subnetpoolid:
+      type: string
+      required: true
+    sig_net_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: UUID of the network.
+    sigv6_v6_subnet_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: UUID of the subnet.
+    vf_module_index:
+      hidden: false
+      immutable: false
+      type: float
+      description: Unique index for this VNF Module instance.
+    backup_file1:
+      hidden: false
+      immutable: false
+      type: string
+      description: |
+        <cURL path>/<backup file>
+        This is only used for restore (aka "disaster recovery") and
+        only referenced on OAM-A.
+    vf_module_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: Unique ID for this VNF module instance.
+    backup_file2:
+      hidden: false
+      immutable: false
+      type: string
+      description: |
+        <cURL path>/<backup file>
+        This is only used for restore (aka "disaster recovery") and
+        only referenced on OAM-A.
+    port_cfed_1_int_ctrl1_port_1_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    cfed_names:
+      hidden: false
+      immutable: false
+      type: list
+      description: VM name list.
+      entry_schema:
+        type: string
+    role:
+      hidden: false
+      immutable: false
+      type: string
+      description: VM role during LCM activities.
+      constraints:
+      - valid_values:
+        - oam
+        - other
+    vnf_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: Unique name for this VNF instance.
+    vf_module_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: Unique name for this VNF module instance.
+    port_cfed_1_int_ctrl0_port_0_related_networks:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+    port_cfed_1_int_ctrl1_port_1_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    vnf_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: Unique ID for this VNF instance.
+    port_cfed_1_int_ctrl1_port_1_network_role:
+      type: string
+      required: true
+    lcm_keypair:
+      hidden: false
+      immutable: false
+      type: string
+      description: Lifecycle management access key pair.
+      constraints: [
+        ]
+    port_cfed_1_int_ctrl1_port_1_order:
+      type: integer
+      required: true
+    availability_zone_1:
+      hidden: false
+      immutable: false
+      type: string
+      description: VM availability zone.
+    sig_Sec_Grp:
+      hidden: false
+      immutable: false
+      type: string
+      description: UUID of the security group.
+    int_ctrl0_Sec_Grp:
+      hidden: false
+      immutable: false
+      type: string
+      description: Internal network 0 security group UUID.
+    net_info_str:
+      hidden: false
+      immutable: false
+      type: string
+      description: |
+        JSON formatted string with all network info.
+        This is redundant with int_net_info and ext_net_info except
+        in Kilo there is no way to convert json to string for
+        output as a personality file.
+    ssh_access_key:
+      hidden: false
+      immutable: false
+      type: string
+      description: Public SSH key for external access.
+    int_ctrl0_net_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: Internal network 0.
+    port_cfed_1_sig_port_2_order:
+      type: integer
+      required: true
+    environment_context:
+      label: Environment Context
+      hidden: false
+      immutable: false
+      type: string
+      description: Environment context for this VNF.
+    port_cfed_1_int_ctrl0_port_0_network_role:
+      type: string
+      required: true
+    pair2idx:
+      hidden: false
+      immutable: false
+      type: json
+      description: Map group index to VMtype index.
+    vm_role:
+      hidden: false
+      immutable: false
+      type: string
+      description: Unique role for these VMs.
+    port_cfed_1_int_ctrl0_port_0_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_cfed_1_int_ctrl0_port_0_order:
+      type: integer
+      required: true
+    port_cfed_1_int_ctrl0_port_0_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    group_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: ID number of the elastic group this pair is a member of.
+    install_config:
+      hidden: false
+      immutable: false
+      type: string
+      description: JSON formatted string of install config values.
+    cfed_volume_1:
+      hidden: false
+      immutable: false
+      type: json
+      description: CFED Volume.
+    group_tag:
+      hidden: false
+      immutable: false
+      type: string
+      description: Key into "usage_info" for members of this elastic group.
+    port_cfed_1_int_ctrl1_port_1_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+  node_templates:
+    cfed_server_1:
+      type: org.openecomp.resource.vfc.compute.nodes.heat.cfed
+      properties:
+        flavor:
+          get_input: cfed_flavor_name
+        key_name:
+          get_input: lcm_keypair
+        availability_zone:
+          get_input: availability_zone_1
+        image:
+          get_input: cfed_image_name
+        image_update_policy: REBUILD
+        metadata:
+          backup_file1:
+            get_input: backup_file1
+          total_pair_count:
+            get_input: total_pair_count
+          vf_module_id:
+            get_input: vf_module_id
+          backup_file2:
+            get_input: backup_file2
+          image:
+            get_input: cfed_image_name
+          member_index: '1'
+          certificate: ''
+          vnf_name:
+            get_input: vnf_name
+          created_at: now
+          environment_context:
+            get_input: environment_context
+          group_type: pair
+          group_index:
+            get_input: group_index
+          workload_context:
+            get_input: workload_context
+          vf_module_name:
+            get_input: vf_module_name
+          default_action: install
+          flavor:
+            get_input: cfed_flavor_name
+          vm_role:
+            get_input: vm_role
+          side_action:
+            get_input:
+            - usage_info
+            - defaults
+            - action
+            - '1'
+          group_id:
+            get_input: group_id
+          vnf_id:
+            get_input: vnf_id
+          current_group_count:
+            get_input: current_group_count
+          action: install
+          vf_module_index:
+            get_input: vf_module_index
+        config_drive: true
+        personality:
+          /storage/cloud/discover/GlobalConfig.json:
+            str_replace:
+              template: ' { "v4_dns_server": "$v4dns", "v6_dns_server": "$v6dns",
+                "v4_enum_server": "$v4enum", "v6_enum_server": "$v6enum", "v4_ntp_server":
+                "$v4ntp", "v6_ntp_server": "$v6ntp", "time_zone": "$time_zone", "system_name":
+                "$sysname", "system_prefix": "$sysprefix", "license_reference": "$license_ref",
+                "local_dns_domain": "$local_dns", "local_enum_domain": "$local_enum",
+                $cfg } '
+              params:
+                $v4dns:
+                  get_input:
+                  - usage_info
+                  - v4_dns_server
+                $v6enum:
+                  get_input:
+                  - usage_info
+                  - v6_enum_serve
+                $v6ntp:
+                  get_input:
+                  - usage_info
+                  - v6_ntp_server
+                $v6dns:
+                  get_input:
+                  - usage_info
+                  - v6_dns_server
+                $v4enum:
+                  get_input:
+                  - usage_info
+                  - v4_enum_server
+                $sysname:
+                  get_input:
+                  - usage_info
+                  - system_name
+                $local_enum:
+                  get_input:
+                  - usage_info
+                  - local_enum_domain
+                $v4ntp:
+                  get_input:
+                  - usage_info
+                  - v4_ntp_server
+                $cfg:
+                  get_input: install_config
+                $local_dns:
+                  get_input:
+                  - usage_info
+                  - local_dns_domain
+                $sysprefix:
+                  get_input:
+                  - usage_info
+                  - system_prefix
+                $license_ref:
+                  get_input:
+                  - usage_info
+                  - license_reference
+                $time_zone:
+                  get_input:
+                  - usage_info
+                  - time_zone
+          /storage/cloud/.ssh/SSHpubkey:
+            get_input: ssh_public_key
+          /storage/cloud/CLDsetup_data.json:
+            str_replace:
+              template: ' { "drbd_uuid": "", "int_vlan_id": "$int_vlan_id", "random":
+                "$random", "SSHpubkeyFile": "/storage/cloud/.ssh/SSHpubkey", "SSHprivkeyFile":
+                "/storage/cloud/.ssh/SSHprivkey", "SSHaccessKey": "$acckey", "stk":
+                "$stk", "uuid_storage": "$uuid_storage" }'
+              params:
+                $random: UNSUPPORTED_RESOURCE_cfed_RandomB
+                $stk:
+                  get_input:
+                  - usage_info
+                  - stack
+                $uuid_storage:
+                  get_input:
+                  - cfed_volume_1
+                  - get_attribute:
+                    - cfed_mapidx_1
+                    - idx1
+                $acckey:
+                  get_input: ssh_access_key
+                $int_vlan_id:
+                  get_input:
+                  - usage_info
+                  - int_vlan_id
+          /storage/cloud/discover/VMinfo.json:
+            str_replace:
+              template: ' { "vm_suffix": "$vmname", "service_config": $servcfg, "v4_default_gateway":
+                "$v4gateway", "v6_default_gateway": "$v6gateway", "v4_static_routes":
+                $v4static_routes, "v6_static_routes": $v6static_routes, "IPinfo":
+                [$ipinfo], "Netinfo": $netinfo } '
+              params:
+                $ipinfo:
+                  str_replace:
+                    template: '{"count": "$ip_count00", "binding_type": "$btype00",
+                      "mac_address": "$mac00", "assigned_ips": [$assgip00], "label2info":
+                      [$l2info00]} ,{"count": "$ip_count01", "binding_type": "$btype01",
+                      "mac_address": "$mac01", "assigned_ips": [$assgip01], "label2info":
+                      [$l2info01]} ,{"count": "$ip_count02", "binding_type": "$btype02",
+                      "mac_address": "$mac02", "assigned_ips": [$assgip02], "label2info":
+                      [$l2info02]} '
+                    params:
+                      $btype00: normal
+                      $btype01: normal
+                      $btype02: normal
+                      $assgip00:
+                        list_join:
+                        - ','
+                        - - list_join:
+                            - ''
+                            - - '"'
+                              - get_attribute:
+                                - cfed_1_int_ctrl0_port_0
+                                - fixed_ips
+                                - 0
+                                - ip_address
+                              - '"'
+                      $assgip01:
+                        list_join:
+                        - ','
+                        - - list_join:
+                            - ''
+                            - - '"'
+                              - get_attribute:
+                                - cfed_1_int_ctrl1_port_1
+                                - fixed_ips
+                                - 0
+                                - ip_address
+                              - '"'
+                      $assgip02:
+                        list_join:
+                        - ','
+                        - - list_join:
+                            - ''
+                            - - '"'
+                              - get_attribute:
+                                - cfed_1_sig_port_2
+                                - fixed_ips
+                                - 0
+                                - ip_address
+                              - '"'
+                          - list_join:
+                            - ''
+                            - - '"'
+                              - get_attribute:
+                                - cfed_1_sig_port_2
+                                - fixed_ips
+                                - 1
+                                - ip_address
+                              - '"'
+                      $mac01:
+                        get_attribute:
+                        - cfed_1_int_ctrl1_port_1
+                        - mac_address
+                      $mac02:
+                        get_attribute:
+                        - cfed_1_sig_port_2
+                        - mac_address
+                      $mac00:
+                        get_attribute:
+                        - cfed_1_int_ctrl0_port_0
+                        - mac_address
+                      $l2info01:
+                        str_replace:
+                          template: '{"label": "connectivity_ip", "subnet": "INTERNALnet1",
+                            "ip": "$ip00"}'
+                          params:
+                            $ip00: ''
+                      $l2info00:
+                        str_replace:
+                          template: '{"label": "connectivity_ip", "subnet": "INTERNALnet0",
+                            "ip": "$ip00"}'
+                          params:
+                            $ip00: ''
+                      $ip_count00: 0
+                      $l2info02:
+                        str_replace:
+                          template: '{"label": "servicetype=cfed-0;fixed;nitype=dbaas;subnet=sig",
+                            "subnet": "sig", "ip": "$ip00"},{"label": "servicetype=cfed-0;fixed;nitype=dbaas;subnet=sigv6",
+                            "subnet": "sigv6", "ip": "$ip01"}'
+                          params:
+                            $ip01:
+                              get_input:
+                              - cfed_sigv6_ipmap_sideB_0_fixed_dbaas
+                              - get_input: group_index
+                            $ip00:
+                              get_input:
+                              - cfed_sig_ipmap_sideB_0_fixed_dbaas
+                              - get_input: group_index
+                      $ip_count01: 0
+                      $ip_count02: 2
+                $netinfo:
+                  get_input: net_info_str
+                $v4gateway:
+                  get_input:
+                  - config_info
+                  - v4_default_gateway
+                $servcfg:
+                  get_input:
+                  - config_info
+                  - poolinfo
+                $v4static_routes:
+                  get_input:
+                  - config_info
+                  - v4_static_routes
+                $v6gateway:
+                  get_input:
+                  - config_info
+                  - v6_default_gateway
+                $vmname:
+                  get_input:
+                  - cfed_names
+                  - get_attribute:
+                    - cfed_mapidx_1
+                    - idx1
+                $v6static_routes:
+                  get_input:
+                  - config_info
+                  - v6_static_routes
+          /storage/cloud/.ssh/SSHprivkey:
+            get_input: ssh_private_key
+        name:
+          get_input:
+          - cfed_names
+          - get_attribute:
+            - cfed_mapidx_1
+            - idx1
+    cfed_1_int_ctrl1_port_1:
+      type: org.openecomp.resource.cp.v2.extNeutronCP
+      properties:
+        subnetpoolid:
+          get_input: port_cfed_1_int_ctrl1_port_1_subnetpoolid
+        allowed_address_pairs: [
+          ]
+        binding:vnic_type: normal
+        related_networks:
+          get_input: port_cfed_1_int_ctrl1_port_1_related_networks
+        network:
+          get_input: int_ctrl1_net_id
+        replacement_policy: AUTO
+        ip_requirements:
+          get_input: port_cfed_1_int_ctrl1_port_1_ip_requirements
+        security_groups:
+        - get_input: int_ctrl1_Sec_Grp
+        network_role:
+          get_input: port_cfed_1_int_ctrl1_port_1_network_role
+        fixed_ips: [
+          ]
+        mac_requirements:
+          get_input: port_cfed_1_int_ctrl1_port_1_mac_requirements
+        subinterface_indicator: false
+        name:
+          str_replace:
+            template: $vnf_name_cfed_1_int_ctrl1_port_1
+            params:
+              $vnf_name:
+                get_input: vnf_name
+        exCP_naming:
+          get_input: port_cfed_1_int_ctrl1_port_1_exCP_naming
+        vlan_requirements:
+          get_input: port_cfed_1_int_ctrl1_port_1_vlan_requirements
+        network_role_tag:
+          get_input: port_cfed_1_int_ctrl1_port_1_network_role_tag
+        order:
+          get_input: port_cfed_1_int_ctrl1_port_1_order
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: cfed_server_1
+          relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        port_mirroring:
+          properties:
+            connection_point:
+              nf_type: ''
+              nfc_type: ''
+              nf_naming_code: ''
+              nfc_naming_code: cfed_server_1
+              network_role:
+                get_input: port_cfed_1_int_ctrl1_port_1_network_role
+              pps_capacity: ''
+    cfed_1_int_ctrl0_port_0:
+      type: org.openecomp.resource.cp.v2.extNeutronCP
+      properties:
+        subnetpoolid:
+          get_input: port_cfed_1_int_ctrl0_port_0_subnetpoolid
+        allowed_address_pairs: [
+          ]
+        binding:vnic_type: normal
+        related_networks:
+          get_input: port_cfed_1_int_ctrl0_port_0_related_networks
+        network:
+          get_input: int_ctrl0_net_id
+        replacement_policy: AUTO
+        ip_requirements:
+          get_input: port_cfed_1_int_ctrl0_port_0_ip_requirements
+        security_groups:
+        - get_input: int_ctrl0_Sec_Grp
+        network_role:
+          get_input: port_cfed_1_int_ctrl0_port_0_network_role
+        fixed_ips: [
+          ]
+        mac_requirements:
+          get_input: port_cfed_1_int_ctrl0_port_0_mac_requirements
+        subinterface_indicator: false
+        name:
+          str_replace:
+            template: $vnf_name_cfed_1_int_ctrl0_port_0
+            params:
+              $vnf_name:
+                get_input: vnf_name
+        exCP_naming:
+          get_input: port_cfed_1_int_ctrl0_port_0_exCP_naming
+        vlan_requirements:
+          get_input: port_cfed_1_int_ctrl0_port_0_vlan_requirements
+        network_role_tag:
+          get_input: port_cfed_1_int_ctrl0_port_0_network_role_tag
+        order:
+          get_input: port_cfed_1_int_ctrl0_port_0_order
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: cfed_server_1
+          relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        port_mirroring:
+          properties:
+            connection_point:
+              nf_type: ''
+              nfc_type: ''
+              nf_naming_code: ''
+              nfc_naming_code: cfed_server_1
+              network_role:
+                get_input: port_cfed_1_int_ctrl0_port_0_network_role
+              pps_capacity: ''
+    cfed_1_sig_port_2:
+      type: org.openecomp.resource.cp.v2.extNeutronCP
+      properties:
+        subnetpoolid:
+          get_input: port_cfed_1_sig_port_2_subnetpoolid
+        allowed_address_pairs: [
+          ]
+        binding:vnic_type: normal
+        related_networks:
+          get_input: port_cfed_1_sig_port_2_related_networks
+        network:
+          get_input: sig_net_id
+        replacement_policy: AUTO
+        ip_requirements:
+          get_input: port_cfed_1_sig_port_2_ip_requirements
+        security_groups:
+        - get_input: sig_Sec_Grp
+        network_role:
+          get_input: port_cfed_1_sig_port_2_network_role
+        fixed_ips:
+        - subnet:
+            get_input: sig_subnet_id
+          ip_address:
+            get_input:
+            - cfed_sig_ipmap_sideB_0_fixed_dbaas
+            - get_input: group_index
+        - subnet:
+            get_input: sigv6_v6_subnet_id
+          ip_address:
+            get_input:
+            - cfed_sigv6_ipmap_sideB_0_fixed_dbaas
+            - get_input: group_index
+        mac_requirements:
+          get_input: port_cfed_1_sig_port_2_mac_requirements
+        subinterface_indicator: false
+        name:
+          str_replace:
+            template: $vnf_name_cfed_1_sig_port_2
+            params:
+              $vnf_name:
+                get_input: vnf_name
+        exCP_naming:
+          get_input: port_cfed_1_sig_port_2_exCP_naming
+        vlan_requirements:
+          get_input: port_cfed_1_sig_port_2_vlan_requirements
+        network_role_tag:
+          get_input: port_cfed_1_sig_port_2_network_role_tag
+        order:
+          get_input: port_cfed_1_sig_port_2_order
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: cfed_server_1
+          relationship: tosca.relationships.network.BindsTo
+      capabilities:
+        port_mirroring:
+          properties:
+            connection_point:
+              nf_type: ''
+              nfc_type: ''
+              nf_naming_code: ''
+              nfc_naming_code: cfed_server_1
+              network_role:
+                get_input: port_cfed_1_sig_port_2_network_role
+              pps_capacity: ''
+  groups:
+    nest_cfed_b_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/nest_cfed_b.yaml
+        description: Generate resources for a pair of 'cfed' VMs. ...
+      members:
+      - cfed_server_1
+      - cfed_1_int_ctrl1_port_1
+      - cfed_1_int_ctrl0_port_0
+      - cfed_1_sig_port_2
+  outputs:
+    VMB-EXT_IPS:
+      description: IP addresses assigned to the first external network.
+      value:
+      - list_join:
+        - ''
+        - - '"'
+          - get_attr:
+            - cfed_1_sig_port_2
+            - fixed_ips
+            - 0
+            - ip_address
+          - '"'
+      - list_join:
+        - ''
+        - - '"'
+          - get_attr:
+            - cfed_1_sig_port_2
+            - fixed_ips
+            - 1
+            - ip_address
+          - '"'
+    Version:
+      description: |
+        Template file version number. This should be updated
+        each time a non-comment change is made to this file.
+      value: K1
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.heat.cfed
+    capabilities:
+      network.incoming.bytes_cfed_1_int_ctrl1_port_1:
+      - cfed_1_int_ctrl1_port_1
+      - network.incoming.bytes
+      network.incoming.bytes_cfed_1_int_ctrl0_port_0:
+      - cfed_1_int_ctrl0_port_0
+      - network.incoming.bytes
+      network.outpoing.packets_cfed_1_sig_port_2:
+      - cfed_1_sig_port_2
+      - network.outpoing.packets
+      disk.device.iops_cfed_server_1:
+      - cfed_server_1
+      - disk.device.iops
+      network.outgoing.bytes.rate_cfed_1_int_ctrl1_port_1:
+      - cfed_1_int_ctrl1_port_1
+      - network.outgoing.bytes.rate
+      memory_cfed_server_1:
+      - cfed_server_1
+      - memory
+      disk.device.read.requests.rate_cfed_server_1:
+      - cfed_server_1
+      - disk.device.read.requests.rate
+      disk.write.bytes_cfed_server_1:
+      - cfed_server_1
+      - disk.write.bytes
+      network.outgoing.bytes.rate_cfed_1_int_ctrl0_port_0:
+      - cfed_1_int_ctrl0_port_0
+      - network.outgoing.bytes.rate
+      disk.write.requests_cfed_server_1:
+      - cfed_server_1
+      - disk.write.requests
+      disk.device.write.bytes_cfed_server_1:
+      - cfed_server_1
+      - disk.device.write.bytes
+      instance_cfed_server_1:
+      - cfed_server_1
+      - instance
+      disk.write.bytes.rate_cfed_server_1:
+      - cfed_server_1
+      - disk.write.bytes.rate
+      network.incoming.bytes.rate_cfed_1_int_ctrl1_port_1:
+      - cfed_1_int_ctrl1_port_1
+      - network.incoming.bytes.rate
+      network.incoming.bytes.rate_cfed_1_int_ctrl0_port_0:
+      - cfed_1_int_ctrl0_port_0
+      - network.incoming.bytes.rate
+      network.incoming.packets_cfed_1_sig_port_2:
+      - cfed_1_sig_port_2
+      - network.incoming.packets
+      host_cfed_server_1:
+      - cfed_server_1
+      - host
+      attachment_cfed_1_sig_port_2:
+      - cfed_1_sig_port_2
+      - attachment
+      forwarder_cfed_1_int_ctrl1_port_1:
+      - cfed_1_int_ctrl1_port_1
+      - forwarder
+      disk.latency_cfed_server_1:
+      - cfed_server_1
+      - disk.latency
+      disk.device.capacity_cfed_server_1:
+      - cfed_server_1
+      - disk.device.capacity
+      network.outgoing.bytes_cfed_1_int_ctrl0_port_0:
+      - cfed_1_int_ctrl0_port_0
+      - network.outgoing.bytes
+      cpu_util_cfed_server_1:
+      - cfed_server_1
+      - cpu_util
+      scalable_cfed_server_1:
+      - cfed_server_1
+      - scalable
+      network.outgoing.bytes.rate_cfed_1_sig_port_2:
+      - cfed_1_sig_port_2
+      - network.outgoing.bytes.rate
+      disk.device.allocation_cfed_server_1:
+      - cfed_server_1
+      - disk.device.allocation
+      cpu_cfed_server_1:
+      - cfed_server_1
+      - cpu
+      network.outpoing.packets_cfed_1_int_ctrl0_port_0:
+      - cfed_1_int_ctrl0_port_0
+      - network.outpoing.packets
+      attachment_cfed_1_int_ctrl0_port_0:
+      - cfed_1_int_ctrl0_port_0
+      - attachment
+      disk.iops_cfed_server_1:
+      - cfed_server_1
+      - disk.iops
+      network.incoming.packets.rate_cfed_1_sig_port_2:
+      - cfed_1_sig_port_2
+      - network.incoming.packets.rate
+      network.outgoing.packets.rate_cfed_1_int_ctrl1_port_1:
+      - cfed_1_int_ctrl1_port_1
+      - network.outgoing.packets.rate
+      disk.device.write.requests.rate_cfed_server_1:
+      - cfed_server_1
+      - disk.device.write.requests.rate
+      feature_cfed_1_int_ctrl1_port_1:
+      - cfed_1_int_ctrl1_port_1
+      - feature
+      binding_cfed_1_sig_port_2:
+      - cfed_1_sig_port_2
+      - binding
+      disk.read.bytes_cfed_server_1:
+      - cfed_server_1
+      - disk.read.bytes
+      network.incoming.bytes_cfed_1_sig_port_2:
+      - cfed_1_sig_port_2
+      - network.incoming.bytes
+      forwarder_cfed_1_sig_port_2:
+      - cfed_1_sig_port_2
+      - forwarder
+      disk.device.usage_cfed_server_1:
+      - cfed_server_1
+      - disk.device.usage
+      binding_cfed_1_int_ctrl1_port_1:
+      - cfed_1_int_ctrl1_port_1
+      - binding
+      binding_cfed_1_int_ctrl0_port_0:
+      - cfed_1_int_ctrl0_port_0
+      - binding
+      disk.device.read.requests_cfed_server_1:
+      - cfed_server_1
+      - disk.device.read.requests
+      memory.resident_cfed_server_1:
+      - cfed_server_1
+      - memory.resident
+      disk.device.read.bytes_cfed_server_1:
+      - cfed_server_1
+      - disk.device.read.bytes
+      vcpus_cfed_server_1:
+      - cfed_server_1
+      - vcpus
+      network.outgoing.packets.rate_cfed_1_sig_port_2:
+      - cfed_1_sig_port_2
+      - network.outgoing.packets.rate
+      network.incoming.packets_cfed_1_int_ctrl1_port_1:
+      - cfed_1_int_ctrl1_port_1
+      - network.incoming.packets
+      network.incoming.packets_cfed_1_int_ctrl0_port_0:
+      - cfed_1_int_ctrl0_port_0
+      - network.incoming.packets
+      disk.read.bytes.rate_cfed_server_1:
+      - cfed_server_1
+      - disk.read.bytes.rate
+      network.incoming.packets.rate_cfed_1_int_ctrl1_port_1:
+      - cfed_1_int_ctrl1_port_1
+      - network.incoming.packets.rate
+      network.incoming.packets.rate_cfed_1_int_ctrl0_port_0:
+      - cfed_1_int_ctrl0_port_0
+      - network.incoming.packets.rate
+      feature_cfed_1_sig_port_2:
+      - cfed_1_sig_port_2
+      - feature
+      disk.device.latency_cfed_server_1:
+      - cfed_server_1
+      - disk.device.latency
+      binding_cfed_server_1:
+      - cfed_server_1
+      - binding
+      disk.read.requests_cfed_server_1:
+      - cfed_server_1
+      - disk.read.requests
+      network.outgoing.bytes_cfed_1_sig_port_2:
+      - cfed_1_sig_port_2
+      - network.outgoing.bytes
+      endpoint_cfed_server_1:
+      - cfed_server_1
+      - endpoint
+      forwarder_cfed_1_int_ctrl0_port_0:
+      - cfed_1_int_ctrl0_port_0
+      - forwarder
+      os_cfed_server_1:
+      - cfed_server_1
+      - os
+      feature_cfed_server_1:
+      - cfed_server_1
+      - feature
+      disk.ephemeral.size_cfed_server_1:
+      - cfed_server_1
+      - disk.ephemeral.size
+      network.outpoing.packets_cfed_1_int_ctrl1_port_1:
+      - cfed_1_int_ctrl1_port_1
+      - network.outpoing.packets
+      disk.root.size_cfed_server_1:
+      - cfed_server_1
+      - disk.root.size
+      network.outgoing.bytes_cfed_1_int_ctrl1_port_1:
+      - cfed_1_int_ctrl1_port_1
+      - network.outgoing.bytes
+      disk.device.read.bytes.rate_cfed_server_1:
+      - cfed_server_1
+      - disk.device.read.bytes.rate
+      disk.usage_cfed_server_1:
+      - cfed_server_1
+      - disk.usage
+      disk.allocation_cfed_server_1:
+      - cfed_server_1
+      - disk.allocation
+      cpu.delta_cfed_server_1:
+      - cfed_server_1
+      - cpu.delta
+      attachment_cfed_1_int_ctrl1_port_1:
+      - cfed_1_int_ctrl1_port_1
+      - attachment
+      disk.write.requests.rate_cfed_server_1:
+      - cfed_server_1
+      - disk.write.requests.rate
+      network.incoming.bytes.rate_cfed_1_sig_port_2:
+      - cfed_1_sig_port_2
+      - network.incoming.bytes.rate
+      feature_cfed_1_int_ctrl0_port_0:
+      - cfed_1_int_ctrl0_port_0
+      - feature
+      disk.capacity_cfed_server_1:
+      - cfed_server_1
+      - disk.capacity
+      disk.device.write.bytes.rate_cfed_server_1:
+      - cfed_server_1
+      - disk.device.write.bytes.rate
+      disk.device.write.requests_cfed_server_1:
+      - cfed_server_1
+      - disk.device.write.requests
+      memory.usage_cfed_server_1:
+      - cfed_server_1
+      - memory.usage
+      network.outgoing.packets.rate_cfed_1_int_ctrl0_port_0:
+      - cfed_1_int_ctrl0_port_0
+      - network.outgoing.packets.rate
+      port_mirroring_cfed_1_int_ctrl1_port_1:
+      - cfed_1_int_ctrl1_port_1
+      - port_mirroring
+      port_mirroring_cfed_1_int_ctrl0_port_0:
+      - cfed_1_int_ctrl0_port_0
+      - port_mirroring
+      port_mirroring_cfed_1_sig_port_2:
+      - cfed_1_sig_port_2
+      - port_mirroring
+    requirements:
+      dependency_cfed_server_1:
+      - cfed_server_1
+      - dependency
+      dependency_cfed_1_int_ctrl1_port_1:
+      - cfed_1_int_ctrl1_port_1
+      - dependency
+      dependency_cfed_1_int_ctrl0_port_0:
+      - cfed_1_int_ctrl0_port_0
+      - dependency
+      link_cfed_1_int_ctrl0_port_0:
+      - cfed_1_int_ctrl0_port_0
+      - link
+      link_cfed_1_int_ctrl1_port_1:
+      - cfed_1_int_ctrl1_port_1
+      - link
+      link_cfed_1_sig_port_2:
+      - cfed_1_sig_port_2
+      - link
+      dependency_cfed_1_sig_port_2:
+      - cfed_1_sig_port_2
+      - dependency
+      local_storage_cfed_server_1:
+      - cfed_server_1
+      - local_storage
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichNfcNamingFunction/out/nest_commonServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/test/resources/mock/enrichNfcNamingFunction/out/nest_commonServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..0f29cd0
--- /dev/null
@@ -0,0 +1,2173 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: nest_common
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+  inputs:
+    total_vm_pairs:
+      hidden: false
+      immutable: false
+      type: string
+      description: |
+        This string will evaluate to the number of PairGroups in the VNF.
+    ext_net_list:
+      hidden: false
+      immutable: false
+      type: list
+      description: List of applicable subnet tags.
+      entry_schema:
+        type: string
+    int_net_count:
+      hidden: false
+      immutable: false
+      type: float
+      description: Number of internal networks.
+      constraints:
+      - valid_values:
+        - 1
+        - 2
+    ext_net_info:
+      hidden: false
+      immutable: false
+      type: json
+      description: |
+        Maps the network strings used in this HOT file
+         to network info for the target cloud.
+    vnf_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: Unique name for this VNF instance.
+    int_net1_label:
+      hidden: false
+      immutable: false
+      type: json
+      description: |
+        Map the number of internal networks to an internal net1 label
+        or the empty string.
+  node_templates:
+    Shared_Sec_Grp:
+      type: org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules
+      properties:
+        name:
+          str_replace:
+            template: $vnfname_sec_group
+            params:
+              $vnfname:
+                get_input: vnf_name
+        description: |
+          Open security settings.
+          This assumes that security is handled internal to the guest.
+        rules:
+        - ethertype: IPv4
+          remote_ip_prefix: 169.254.0.0/16
+          direction: ingress
+        - ethertype: IPv4
+          remote_ip_prefix: 169.254.0.0/16
+          direction: egress
+    int_ctrl0_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork
+      properties:
+        dhcp_enabled: false
+        network_name:
+          str_replace:
+            template: $vnfnameint_ctrl0_network
+            params:
+              $vnfname:
+                get_input: vnf_name
+        subnets:
+          int_ctrl0_subnet_0:
+            enable_dhcp: false
+            cidr: 169.254.5.0/24
+    int_ctrl1_network:
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork
+      properties:
+        dhcp_enabled: false
+        network_name:
+          str_replace:
+            template: $vnfnameint_ctrl1_network
+            params:
+              $vnfname:
+                get_input: vnf_name
+        subnets:
+          int_ctrl1_subnet_0:
+            enable_dhcp: false
+            cidr: 169.254.9.0/24
+  groups:
+    nest_common_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/nest_common.yaml
+        description: |
+          Common resources needed for all LCP based vNFs.
+          Note that 2 internal subnets are defined. The csar2csop tool will
+          remove the seond if it is not applicable.
+          Similarly both contrain and OpenStack network resources are defined.
+          The csar2csop tool will remove whichever is not used.
+      members:
+      - Shared_Sec_Grp
+      - int_ctrl0_network
+      - int_ctrl1_network
+  outputs:
+    NetInfoStr:
+      description: Per-subnet information in string format.
+      value:
+        str_replace:
+          params:
+            $cidr00:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 0
+              - cidr
+            $cidr01:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 1
+              - cidr
+            $cidr02:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 2
+              - cidr
+            $cidr03:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 3
+              - cidr
+            $cidr04:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 4
+              - cidr
+            $cidr05:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 5
+              - cidr
+            $cidr06:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 6
+              - cidr
+            $cidr07:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 7
+              - cidr
+            $cidr08:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 8
+              - cidr
+            $cidr09:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 9
+              - cidr
+            $cidr10:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 10
+              - cidr
+            $cidr11:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 11
+              - cidr
+            $cidr12:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 12
+              - cidr
+            $cidr13:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 13
+              - cidr
+            $cidr14:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 14
+              - cidr
+            $cidr15:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 15
+              - cidr
+            $cidr16:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 16
+              - cidr
+            $cidr17:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 17
+              - cidr
+            $cidr18:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 18
+              - cidr
+            $cidr19:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 19
+              - cidr
+            $cidr20:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 20
+              - cidr
+            $cidr21:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 21
+              - cidr
+            $cidr22:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 22
+              - cidr
+            $cidr23:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 23
+              - cidr
+            $cidr24:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 24
+              - cidr
+            $cidr25:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 25
+              - cidr
+            $cidr26:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 26
+              - cidr
+            $cidr27:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 27
+              - cidr
+            $cidr28:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 28
+              - cidr
+            $cidr29:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 29
+              - cidr
+            $cidr30:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 30
+              - cidr
+            $cidr31:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 31
+              - cidr
+            $cidr32:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 32
+              - cidr
+            $cidr33:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 33
+              - cidr
+            $cidr34:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 34
+              - cidr
+            $cidr35:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 35
+              - cidr
+            $cidr36:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 36
+              - cidr
+            $cidr37:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 37
+              - cidr
+            $cidr38:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 38
+              - cidr
+            $cidr39:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 39
+              - cidr
+            $cidr40:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 40
+              - cidr
+            $cidr41:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 41
+              - cidr
+            $cidr42:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 42
+              - cidr
+            $cidr43:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 43
+              - cidr
+            $cidr44:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 44
+              - cidr
+            $cidr45:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 45
+              - cidr
+            $cidr46:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 46
+              - cidr
+            $cidr47:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 47
+              - cidr
+            $cidr48:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 48
+              - cidr
+            $cidr49:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 49
+              - cidr
+            $cidr50:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 50
+              - cidr
+            $cidr51:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 51
+              - cidr
+            $cidr52:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 52
+              - cidr
+            $cidr53:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 53
+              - cidr
+            $cidr54:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 54
+              - cidr
+            $cidr55:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 55
+              - cidr
+            $cidr56:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 56
+              - cidr
+            $cidr57:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 57
+              - cidr
+            $cidr58:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 58
+              - cidr
+            $cidr59:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 59
+              - cidr
+            $cidr60:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 60
+              - cidr
+            $cidr61:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 61
+              - cidr
+            $cidr62:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 62
+              - cidr
+            $cidr63:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 63
+              - cidr
+            $extlist:
+              list_join:
+              - ' '
+              - get_param: ext_net_list
+            $gw00:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 0
+              - default_gateway
+            $gw01:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 1
+              - default_gateway
+            $gw02:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 2
+              - default_gateway
+            $gw03:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 3
+              - default_gateway
+            $gw04:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 4
+              - default_gateway
+            $gw05:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 5
+              - default_gateway
+            $gw06:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 6
+              - default_gateway
+            $gw07:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 7
+              - default_gateway
+            $gw08:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 8
+              - default_gateway
+            $gw09:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 9
+              - default_gateway
+            $gw10:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 10
+              - default_gateway
+            $gw11:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 11
+              - default_gateway
+            $gw12:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 12
+              - default_gateway
+            $gw13:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 13
+              - default_gateway
+            $gw14:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 14
+              - default_gateway
+            $gw15:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 15
+              - default_gateway
+            $gw16:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 16
+              - default_gateway
+            $gw17:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 17
+              - default_gateway
+            $gw18:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 18
+              - default_gateway
+            $gw19:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 19
+              - default_gateway
+            $gw20:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 20
+              - default_gateway
+            $gw21:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 21
+              - default_gateway
+            $gw22:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 22
+              - default_gateway
+            $gw23:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 23
+              - default_gateway
+            $gw24:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 24
+              - default_gateway
+            $gw25:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 25
+              - default_gateway
+            $gw26:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 26
+              - default_gateway
+            $gw27:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 27
+              - default_gateway
+            $gw28:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 28
+              - default_gateway
+            $gw29:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 29
+              - default_gateway
+            $gw30:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 30
+              - default_gateway
+            $gw31:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 31
+              - default_gateway
+            $gw32:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 32
+              - default_gateway
+            $gw33:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 33
+              - default_gateway
+            $gw34:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 34
+              - default_gateway
+            $gw35:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 35
+              - default_gateway
+            $gw36:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 36
+              - default_gateway
+            $gw37:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 37
+              - default_gateway
+            $gw38:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 38
+              - default_gateway
+            $gw39:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 39
+              - default_gateway
+            $gw40:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 40
+              - default_gateway
+            $gw41:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 41
+              - default_gateway
+            $gw42:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 42
+              - default_gateway
+            $gw43:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 43
+              - default_gateway
+            $gw44:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 44
+              - default_gateway
+            $gw45:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 45
+              - default_gateway
+            $gw46:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 46
+              - default_gateway
+            $gw47:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 47
+              - default_gateway
+            $gw48:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 48
+              - default_gateway
+            $gw49:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 49
+              - default_gateway
+            $gw50:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 50
+              - default_gateway
+            $gw51:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 51
+              - default_gateway
+            $gw52:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 52
+              - default_gateway
+            $gw53:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 53
+              - default_gateway
+            $gw54:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 54
+              - default_gateway
+            $gw55:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 55
+              - default_gateway
+            $gw56:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 56
+              - default_gateway
+            $gw57:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 57
+              - default_gateway
+            $gw58:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 58
+              - default_gateway
+            $gw59:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 59
+              - default_gateway
+            $gw60:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 60
+              - default_gateway
+            $gw61:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 61
+              - default_gateway
+            $gw62:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 62
+              - default_gateway
+            $gw63:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 63
+              - default_gateway
+            $inet1tag:
+              get_param:
+              - int_net1_label
+              - str_replace:
+                  params:
+                    $val:
+                      get_param: int_net_count
+                  template: $val
+            $intnet0:
+              get_resource: int_ctrl0_network
+            $intnet1:
+              get_resource: int_ctrl1_network
+            $intsnet0:
+              get_resource: int_ctrl0_subnet_0
+            $intsnet1:
+              get_resource: int_ctrl1_subnet_0
+            $mtu00:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 0
+              - mtu_size
+            $mtu01:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 1
+              - mtu_size
+            $mtu02:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 2
+              - mtu_size
+            $mtu03:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 3
+              - mtu_size
+            $mtu04:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 4
+              - mtu_size
+            $mtu05:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 5
+              - mtu_size
+            $mtu06:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 6
+              - mtu_size
+            $mtu07:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 7
+              - mtu_size
+            $mtu08:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 8
+              - mtu_size
+            $mtu09:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 9
+              - mtu_size
+            $mtu10:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 10
+              - mtu_size
+            $mtu11:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 11
+              - mtu_size
+            $mtu12:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 12
+              - mtu_size
+            $mtu13:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 13
+              - mtu_size
+            $mtu14:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 14
+              - mtu_size
+            $mtu15:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 15
+              - mtu_size
+            $mtu16:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 16
+              - mtu_size
+            $mtu17:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 17
+              - mtu_size
+            $mtu18:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 18
+              - mtu_size
+            $mtu19:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 19
+              - mtu_size
+            $mtu20:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 20
+              - mtu_size
+            $mtu21:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 21
+              - mtu_size
+            $mtu22:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 22
+              - mtu_size
+            $mtu23:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 23
+              - mtu_size
+            $mtu24:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 24
+              - mtu_size
+            $mtu25:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 25
+              - mtu_size
+            $mtu26:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 26
+              - mtu_size
+            $mtu27:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 27
+              - mtu_size
+            $mtu28:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 28
+              - mtu_size
+            $mtu29:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 29
+              - mtu_size
+            $mtu30:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 30
+              - mtu_size
+            $mtu31:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 31
+              - mtu_size
+            $mtu32:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 32
+              - mtu_size
+            $mtu33:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 33
+              - mtu_size
+            $mtu34:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 34
+              - mtu_size
+            $mtu35:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 35
+              - mtu_size
+            $mtu36:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 36
+              - mtu_size
+            $mtu37:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 37
+              - mtu_size
+            $mtu38:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 38
+              - mtu_size
+            $mtu39:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 39
+              - mtu_size
+            $mtu40:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 40
+              - mtu_size
+            $mtu41:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 41
+              - mtu_size
+            $mtu42:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 42
+              - mtu_size
+            $mtu43:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 43
+              - mtu_size
+            $mtu44:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 44
+              - mtu_size
+            $mtu45:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 45
+              - mtu_size
+            $mtu46:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 46
+              - mtu_size
+            $mtu47:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 47
+              - mtu_size
+            $mtu48:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 48
+              - mtu_size
+            $mtu49:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 49
+              - mtu_size
+            $mtu50:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 50
+              - mtu_size
+            $mtu51:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 51
+              - mtu_size
+            $mtu52:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 52
+              - mtu_size
+            $mtu53:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 53
+              - mtu_size
+            $mtu54:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 54
+              - mtu_size
+            $mtu55:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 55
+              - mtu_size
+            $mtu56:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 56
+              - mtu_size
+            $mtu57:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 57
+              - mtu_size
+            $mtu58:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 58
+              - mtu_size
+            $mtu59:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 59
+              - mtu_size
+            $mtu60:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 60
+              - mtu_size
+            $mtu61:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 61
+              - mtu_size
+            $mtu62:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 62
+              - mtu_size
+            $mtu63:
+              get_param:
+              - ext_net_info
+              - get_param:
+                - ext_net_list
+                - 63
+              - mtu_size
+            $tag00:
+              get_param:
+              - ext_net_list
+              - 0
+            $tag01:
+              get_param:
+              - ext_net_list
+              - 1
+            $tag02:
+              get_param:
+              - ext_net_list
+              - 2
+            $tag03:
+              get_param:
+              - ext_net_list
+              - 3
+            $tag04:
+              get_param:
+              - ext_net_list
+              - 4
+            $tag05:
+              get_param:
+              - ext_net_list
+              - 5
+            $tag06:
+              get_param:
+              - ext_net_list
+              - 6
+            $tag07:
+              get_param:
+              - ext_net_list
+              - 7
+            $tag08:
+              get_param:
+              - ext_net_list
+              - 8
+            $tag09:
+              get_param:
+              - ext_net_list
+              - 9
+            $tag10:
+              get_param:
+              - ext_net_list
+              - 10
+            $tag11:
+              get_param:
+              - ext_net_list
+              - 11
+            $tag12:
+              get_param:
+              - ext_net_list
+              - 12
+            $tag13:
+              get_param:
+              - ext_net_list
+              - 13
+            $tag14:
+              get_param:
+              - ext_net_list
+              - 14
+            $tag15:
+              get_param:
+              - ext_net_list
+              - 15
+            $tag16:
+              get_param:
+              - ext_net_list
+              - 16
+            $tag17:
+              get_param:
+              - ext_net_list
+              - 17
+            $tag18:
+              get_param:
+              - ext_net_list
+              - 18
+            $tag19:
+              get_param:
+              - ext_net_list
+              - 19
+            $tag20:
+              get_param:
+              - ext_net_list
+              - 20
+            $tag21:
+              get_param:
+              - ext_net_list
+              - 21
+            $tag22:
+              get_param:
+              - ext_net_list
+              - 22
+            $tag23:
+              get_param:
+              - ext_net_list
+              - 23
+            $tag24:
+              get_param:
+              - ext_net_list
+              - 24
+            $tag25:
+              get_param:
+              - ext_net_list
+              - 25
+            $tag26:
+              get_param:
+              - ext_net_list
+              - 26
+            $tag27:
+              get_param:
+              - ext_net_list
+              - 27
+            $tag28:
+              get_param:
+              - ext_net_list
+              - 28
+            $tag29:
+              get_param:
+              - ext_net_list
+              - 29
+            $tag30:
+              get_param:
+              - ext_net_list
+              - 30
+            $tag31:
+              get_param:
+              - ext_net_list
+              - 31
+            $tag32:
+              get_param:
+              - ext_net_list
+              - 32
+            $tag33:
+              get_param:
+              - ext_net_list
+              - 33
+            $tag34:
+              get_param:
+              - ext_net_list
+              - 34
+            $tag35:
+              get_param:
+              - ext_net_list
+              - 35
+            $tag36:
+              get_param:
+              - ext_net_list
+              - 36
+            $tag37:
+              get_param:
+              - ext_net_list
+              - 37
+            $tag38:
+              get_param:
+              - ext_net_list
+              - 38
+            $tag39:
+              get_param:
+              - ext_net_list
+              - 39
+            $tag40:
+              get_param:
+              - ext_net_list
+              - 40
+            $tag41:
+              get_param:
+              - ext_net_list
+              - 41
+            $tag42:
+              get_param:
+              - ext_net_list
+              - 42
+            $tag43:
+              get_param:
+              - ext_net_list
+              - 43
+            $tag44:
+              get_param:
+              - ext_net_list
+              - 44
+            $tag45:
+              get_param:
+              - ext_net_list
+              - 45
+            $tag46:
+              get_param:
+              - ext_net_list
+              - 46
+            $tag47:
+              get_param:
+              - ext_net_list
+              - 47
+            $tag48:
+              get_param:
+              - ext_net_list
+              - 48
+            $tag49:
+              get_param:
+              - ext_net_list
+              - 49
+            $tag50:
+              get_param:
+              - ext_net_list
+              - 50
+            $tag51:
+              get_param:
+              - ext_net_list
+              - 51
+            $tag52:
+              get_param:
+              - ext_net_list
+              - 52
+            $tag53:
+              get_param:
+              - ext_net_list
+              - 53
+            $tag54:
+              get_param:
+              - ext_net_list
+              - 54
+            $tag55:
+              get_param:
+              - ext_net_list
+              - 55
+            $tag56:
+              get_param:
+              - ext_net_list
+              - 56
+            $tag57:
+              get_param:
+              - ext_net_list
+              - 57
+            $tag58:
+              get_param:
+              - ext_net_list
+              - 58
+            $tag59:
+              get_param:
+              - ext_net_list
+              - 59
+            $tag60:
+              get_param:
+              - ext_net_list
+              - 60
+            $tag61:
+              get_param:
+              - ext_net_list
+              - 61
+            $tag62:
+              get_param:
+              - ext_net_list
+              - 62
+            $tag63:
+              get_param:
+              - ext_net_list
+              - 63
+          template: |
+            {
+              "subnet_list": "INTERNALnet0 $inet1tag $extlist",
+              "INTERNALnet0": {
+                "id": "$intnet0",
+                "subnet_id": "$intsnet0",
+                "cidr": "169.254.0.0/16",
+                "default_gateway": ""
+              },
+              "INTERNALnet1": {
+                "id": "$intnet1",
+                "subnet_id": "$intsnet1",
+                "cidr": "169.254.0.0/16",
+                "default_gateway": ""
+              },
+              "$tag00": {
+                "cidr": "$cidr00",
+                "default_gateway": "$gw00",
+                "mtu_size": "$mtu00"
+              },
+              "$tag01": {
+                "cidr": "$cidr01",
+                "default_gateway": "$gw01",
+                "mtu_size": "$mtu01"
+              },
+              "$tag02": {
+                "cidr": "$cidr02",
+                "default_gateway": "$gw02",
+                "mtu_size": "$mtu02"
+              },
+              "$tag03": {
+                "cidr": "$cidr03",
+                "default_gateway": "$gw03",
+                "mtu_size": "$mtu03"
+              },
+              "$tag04": {
+                "cidr": "$cidr04",
+                "default_gateway": "$gw04",
+                "mtu_size": "$mtu04"
+              },
+              "$tag05": {
+                "cidr": "$cidr05",
+                "default_gateway": "$gw05",
+                "mtu_size": "$mtu05"
+              },
+              "$tag06": {
+                "cidr": "$cidr06",
+                "default_gateway": "$gw06",
+                "mtu_size": "$mtu06"
+              },
+              "$tag07": {
+                "cidr": "$cidr07",
+                "default_gateway": "$gw07",
+                "mtu_size": "$mtu07"
+              },
+              "$tag08": {
+                "cidr": "$cidr08",
+                "default_gateway": "$gw08",
+                "mtu_size": "$mtu08"
+              },
+              "$tag09": {
+                "cidr": "$cidr09",
+                "default_gateway": "$gw09",
+                "mtu_size": "$mtu09"
+              },
+              "$tag10": {
+                "cidr": "$cidr10",
+                "default_gateway": "$gw10",
+                "mtu_size": "$mtu10"
+              },
+              "$tag11": {
+                "cidr": "$cidr11",
+                "default_gateway": "$gw11",
+                "mtu_size": "$mtu11"
+              },
+              "$tag12": {
+                "cidr": "$cidr12",
+                "default_gateway": "$gw12",
+                "mtu_size": "$mtu12"
+              },
+              "$tag13": {
+                "cidr": "$cidr13",
+                "default_gateway": "$gw13",
+                "mtu_size": "$mtu13"
+              },
+              "$tag14": {
+                "cidr": "$cidr14",
+                "default_gateway": "$gw14",
+                "mtu_size": "$mtu14"
+              },
+              "$tag15": {
+                "cidr": "$cidr15",
+                "default_gateway": "$gw15",
+                "mtu_size": "$mtu15"
+              },
+              "$tag16": {
+                "cidr": "$cidr16",
+                "default_gateway": "$gw16",
+                "mtu_size": "$mtu16"
+              },
+              "$tag17": {
+                "cidr": "$cidr17",
+                "default_gateway": "$gw17",
+                "mtu_size": "$mtu17"
+              },
+              "$tag18": {
+                "cidr": "$cidr18",
+                "default_gateway": "$gw18",
+                "mtu_size": "$mtu18"
+              },
+              "$tag19": {
+                "cidr": "$cidr19",
+                "default_gateway": "$gw19",
+                "mtu_size": "$mtu19"
+              },
+              "$tag20": {
+                "cidr": "$cidr20",
+                "default_gateway": "$gw20",
+                "mtu_size": "$mtu20"
+              },
+              "$tag21": {
+                "cidr": "$cidr21",
+                "default_gateway": "$gw21",
+                "mtu_size": "$mtu21"
+              },
+              "$tag22": {
+                "cidr": "$cidr22",
+                "default_gateway": "$gw22",
+                "mtu_size": "$mtu22"
+              },
+              "$tag23": {
+                "cidr": "$cidr23",
+                "default_gateway": "$gw23",
+                "mtu_size": "$mtu23"
+              },
+              "$tag24": {
+                "cidr": "$cidr24",
+                "default_gateway": "$gw24",
+                "mtu_size": "$mtu24"
+              },
+              "$tag25": {
+                "cidr": "$cidr25",
+                "default_gateway": "$gw25",
+                "mtu_size": "$mtu25"
+              },
+              "$tag26": {
+                "cidr": "$cidr26",
+                "default_gateway": "$gw26",
+                "mtu_size": "$mtu26"
+              },
+              "$tag27": {
+                "cidr": "$cidr27",
+                "default_gateway": "$gw27",
+                "mtu_size": "$mtu27"
+              },
+              "$tag28": {
+                "cidr": "$cidr28",
+                "default_gateway": "$gw28",
+                "mtu_size": "$mtu28"
+              },
+              "$tag29": {
+                "cidr": "$cidr29",
+                "default_gateway": "$gw29",
+                "mtu_size": "$mtu29"
+              },
+              "$tag30": {
+                "cidr": "$cidr30",
+                "default_gateway": "$gw30",
+                "mtu_size": "$mtu30"
+              },
+              "$tag31": {
+                "cidr": "$cidr31",
+                "default_gateway": "$gw31",
+                "mtu_size": "$mtu31"
+              },
+              "$tag32": {
+                "cidr": "$cidr32",
+                "default_gateway": "$gw32",
+                "mtu_size": "$mtu32"
+              },
+              "$tag33": {
+                "cidr": "$cidr33",
+                "default_gateway": "$gw33",
+                "mtu_size": "$mtu33"
+              },
+              "$tag34": {
+                "cidr": "$cidr34",
+                "default_gateway": "$gw34",
+                "mtu_size": "$mtu34"
+              },
+              "$tag35": {
+                "cidr": "$cidr35",
+                "default_gateway": "$gw35",
+                "mtu_size": "$mtu35"
+              },
+              "$tag36": {
+                "cidr": "$cidr36",
+                "default_gateway": "$gw36",
+                "mtu_size": "$mtu36"
+              },
+              "$tag37": {
+                "cidr": "$cidr37",
+                "default_gateway": "$gw37",
+                "mtu_size": "$mtu37"
+              },
+              "$tag38": {
+                "cidr": "$cidr38",
+                "default_gateway": "$gw38",
+                "mtu_size": "$mtu38"
+              },
+              "$tag39": {
+                "cidr": "$cidr39",
+                "default_gateway": "$gw39",
+                "mtu_size": "$mtu39"
+              },
+              "$tag40": {
+                "cidr": "$cidr40",
+                "default_gateway": "$gw40",
+                "mtu_size": "$mtu40"
+              },
+              "$tag41": {
+                "cidr": "$cidr41",
+                "default_gateway": "$gw41",
+                "mtu_size": "$mtu41"
+              },
+              "$tag42": {
+                "cidr": "$cidr42",
+                "default_gateway": "$gw42",
+                "mtu_size": "$mtu42"
+              },
+              "$tag43": {
+                "cidr": "$cidr43",
+                "default_gateway": "$gw43",
+                "mtu_size": "$mtu43"
+              },
+              "$tag44": {
+                "cidr": "$cidr44",
+                "default_gateway": "$gw44",
+                "mtu_size": "$mtu44"
+              },
+              "$tag45": {
+                "cidr": "$cidr45",
+                "default_gateway": "$gw45",
+                "mtu_size": "$mtu45"
+              },
+              "$tag46": {
+                "cidr": "$cidr46",
+                "default_gateway": "$gw46",
+                "mtu_size": "$mtu46"
+              },
+              "$tag47": {
+                "cidr": "$cidr47",
+                "default_gateway": "$gw47",
+                "mtu_size": "$mtu47"
+              },
+              "$tag48": {
+                "cidr": "$cidr48",
+                "default_gateway": "$gw48",
+                "mtu_size": "$mtu48"
+              },
+              "$tag49": {
+                "cidr": "$cidr49",
+                "default_gateway": "$gw49",
+                "mtu_size": "$mtu49"
+              },
+              "$tag50": {
+                "cidr": "$cidr50",
+                "default_gateway": "$gw50",
+                "mtu_size": "$mtu50"
+              },
+              "$tag51": {
+                "cidr": "$cidr51",
+                "default_gateway": "$gw51",
+                "mtu_size": "$mtu51"
+              },
+              "$tag52": {
+                "cidr": "$cidr52",
+                "default_gateway": "$gw52",
+                "mtu_size": "$mtu52"
+              },
+              "$tag53": {
+                "cidr": "$cidr53",
+                "default_gateway": "$gw53",
+                "mtu_size": "$mtu53"
+              },
+              "$tag54": {
+                "cidr": "$cidr54",
+                "default_gateway": "$gw54",
+                "mtu_size": "$mtu54"
+              },
+              "$tag55": {
+                "cidr": "$cidr55",
+                "default_gateway": "$gw55",
+                "mtu_size": "$mtu55"
+              },
+              "$tag56": {
+                "cidr": "$cidr56",
+                "default_gateway": "$gw56",
+                "mtu_size": "$mtu56"
+              },
+              "$tag57": {
+                "cidr": "$cidr57",
+                "default_gateway": "$gw57",
+                "mtu_size": "$mtu57"
+              },
+              "$tag58": {
+                "cidr": "$cidr58",
+                "default_gateway": "$gw58",
+                "mtu_size": "$mtu58"
+              },
+              "$tag59": {
+                "cidr": "$cidr59",
+                "default_gateway": "$gw59",
+                "mtu_size": "$mtu59"
+              },
+              "$tag60": {
+                "cidr": "$cidr60",
+                "default_gateway": "$gw60",
+                "mtu_size": "$mtu60"
+              },
+              "$tag61": {
+                "cidr": "$cidr61",
+                "default_gateway": "$gw61",
+                "mtu_size": "$mtu61"
+              },
+              "$tag62": {
+                "cidr": "$cidr62",
+                "default_gateway": "$gw62",
+                "mtu_size": "$mtu62"
+              },
+              "$tag63": {
+                "cidr": "$cidr63",
+                "default_gateway": "$gw63",
+                "mtu_size": "$mtu63"
+              }
+            }
+    PrivateKey:
+      description: Private SSH key for pre-install intra-VM communication.
+      value:
+      - UNSUPPORTED_RESOURCE_shared_keypair
+    Version:
+      description: |
+        Template file version number. This should be updated
+        each time a non-comment change is made to this file.
+      value: K1
+    PublicKey:
+      description: Public SSH key for pre-install intra-VM communication.
+      value:
+      - UNSUPPORTED_RESOURCE_shared_keypair
+    TotalPairCount:
+      description: |
+        This string will evaluate to the number of PairGroups in the VNF.
+      value:
+        get_input: total_vm_pairs
+    IntNetInfo:
+      description: Internal network attributes.
+      value:
+        INTERNALnet0:
+          cidr: 169.254.0.0/16
+          default_gateway: ''
+          id:
+            str_replace:
+              params:
+                $val:
+                  get_resource: int_ctrl0_network
+              template: $val
+          subnet_id:
+            str_replace:
+              params:
+                $val:
+                  get_resource: int_ctrl0_subnet_0
+              template: $val
+        INTERNALnet1:
+          cidr: 169.254.0.0/16
+          default_gateway: ''
+          id:
+            str_replace:
+              params:
+                $val:
+                  get_resource: int_ctrl1_network
+              template: $val
+          subnet_id:
+            str_replace:
+              params:
+                $val:
+                  get_resource: int_ctrl1_subnet_0
+              template: $val
+    OpenSec:
+      description: Open security group.
+      value: Shared_Sec_Grp
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.heat.nest_common
+    capabilities:
+      feature_int_ctrl0_network:
+      - int_ctrl0_network
+      - feature
+      attachment_int_ctrl0_network:
+      - int_ctrl0_network
+      - attachment
+      end_point_int_ctrl0_network:
+      - int_ctrl0_network
+      - end_point
+      attachment_int_ctrl1_network:
+      - int_ctrl1_network
+      - attachment
+      end_point_int_ctrl1_network:
+      - int_ctrl1_network
+      - end_point
+      link_int_ctrl1_network:
+      - int_ctrl1_network
+      - link
+      feature_Shared_Sec_Grp:
+      - Shared_Sec_Grp
+      - feature
+      feature_int_ctrl1_network:
+      - int_ctrl1_network
+      - feature
+      link_int_ctrl0_network:
+      - int_ctrl0_network
+      - link
+    requirements:
+      dependency_int_ctrl0_network:
+      - int_ctrl0_network
+      - dependency
+      dependency_Shared_Sec_Grp:
+      - Shared_Sec_Grp
+      - dependency
+      dependency_int_ctrl1_network:
+      - int_ctrl1_network
+      - dependency
+      port_Shared_Sec_Grp:
+      - Shared_Sec_Grp
+      - port
index 35d7a89..c56497f 100644 (file)
@@ -935,4 +935,1994 @@ node_types:
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.heat.base_att_cfed_nested_volume:
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+    properties:
+      size:
+        type: float
+        description: Size of /storage in GB.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - in_range:
+          - 4
+          - null
+      vnf_name:
+        type: string
+        description: Unique name for this VNF instance.
+        required: true
+        status: SUPPORTED
+      index:
+        type: float
+        description: number of volumes to spin up
+        required: true
+        status: SUPPORTED
+      OS::stack_name:
+        type: string
+        required: false
+        status: SUPPORTED
+    attributes:
+      cfed_volume_0:
+        type: string
+        description: CFED Volume UUID
+        status: SUPPORTED
+      cfed_volume_1:
+        type: string
+        description: CFED Volume UUID
+        status: SUPPORTED
+    requirements:
+    - dependency_cfed_volume_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_cfed_volume_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    capabilities:
+      feature_cfed_volume_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_volume_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_volume_0:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_volume_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.heat.cfed_1:
+    derived_from: org.openecomp.resource.abstract.nodes.VFC
+    properties:
+      cfed_flavor_name:
+        type: string
+        description: VM flavor name.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      usage_info:
+        type: json
+        description: |
+          Per-VM/vNIC data for members of this elastic group.
+        required: true
+        status: SUPPORTED
+      config_info:
+        type: json
+        description: Service configuration and network layout.
+        required: true
+        status: SUPPORTED
+      group_index:
+        type: float
+        description: Index of the VM pair within the elastic group.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - in_range:
+          - 0
+          - null
+      sig_subnet_id:
+        type: string
+        description: UUID of the subnet.
+        required: true
+        status: SUPPORTED
+      workload_context:
+        type: string
+        description: Workload context for this VNF.
+        required: true
+        status: SUPPORTED
+      ssh_private_key:
+        type: string
+        description: Private SSH key for VM to VM communication in this system.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_cfed_0_int_ctrl0_port_0_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_cfed_0_sig_port_2_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      int_ctrl1_Sec_Grp:
+        type: string
+        description: Internal network 0 security group UUID.
+        required: true
+        status: SUPPORTED
+      current_group_count:
+        type: string
+        description: |
+          Current VM pair count within the elastic group.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      total_pair_count:
+        type: string
+        description: |
+          This string will evaluate to the number of PairGroups in the VNF.
+        required: true
+        status: SUPPORTED
+      cfed_sig_ipmap_sideA_0_float_published:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cfed_0_sig_port_2_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      int_ctrl1_net_id:
+        type: string
+        description: Internal network 1.
+        required: true
+        status: SUPPORTED
+      cfed_sigv6_ipmap_sideA_0_fixed_dbaas:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      cfed_image_name:
+        type: string
+        description: VM image name.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      cfed_sigv6_ipmap_sideA_0_float_published:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      cfed_sig_ipmap_sideA_0_fixed_dbaas:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cfed_0_int_ctrl0_port_0_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      ssh_public_key:
+        type: string
+        description: Public SSH key for VM to VM communication in this system.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_cfed_0_int_ctrl1_port_1_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      sig_net_id:
+        type: string
+        description: UUID of the network.
+        required: true
+        status: SUPPORTED
+      sigv6_v6_subnet_id:
+        type: string
+        description: UUID of the subnet.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      vf_module_index:
+        type: float
+        description: Unique index for this VNF Module instance.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      backup_file1:
+        type: string
+        description: |
+          <cURL path>/<backup file>
+          This is only used for restore (aka "disaster recovery") and
+          only referenced on OAM-A.
+        required: true
+        status: SUPPORTED
+      vf_module_id:
+        type: string
+        description: Unique ID for this VNF module instance.
+        required: true
+        status: SUPPORTED
+      backup_file2:
+        type: string
+        description: |
+          <cURL path>/<backup file>
+          This is only used for restore (aka "disaster recovery") and
+          only referenced on OAM-A.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      cfed_names:
+        type: list
+        description: VM name list.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      role:
+        type: string
+        description: VM role during LCM activities.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - valid_values:
+          - oam
+          - other
+      port_cfed_0_int_ctrl1_port_1_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      vnf_name:
+        type: string
+        description: Unique name for this VNF instance.
+        required: true
+        status: SUPPORTED
+      vf_module_name:
+        type: string
+        description: Unique name for this VNF module instance.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      vnf_id:
+        type: string
+        description: Unique ID for this VNF instance.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      lcm_keypair:
+        type: string
+        description: Lifecycle management access key pair.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      availability_zone_0:
+        type: string
+        description: VM availability zone.
+        required: true
+        status: SUPPORTED
+      sig_Sec_Grp:
+        type: string
+        description: UUID of the security group.
+        required: true
+        status: SUPPORTED
+      int_ctrl0_Sec_Grp:
+        type: string
+        description: Internal network 0 security group UUID.
+        required: true
+        status: SUPPORTED
+      net_info_str:
+        type: string
+        description: |
+          JSON formatted string with all network info.
+          This is redundant with int_net_info and ext_net_info except
+          in Kilo there is no way to convert json to string for
+          output as a personality file.
+        required: true
+        status: SUPPORTED
+      ssh_access_key:
+        type: string
+        description: Public SSH key for external access.
+        required: true
+        status: SUPPORTED
+      int_ctrl0_net_id:
+        type: string
+        description: Internal network 0.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      environment_context:
+        type: string
+        description: Environment context for this VNF.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      pair2idx:
+        type: json
+        description: Map group index to VMtype index.
+        required: true
+        status: SUPPORTED
+      vm_role:
+        type: string
+        description: Unique role for these VMs.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      group_id:
+        type: string
+        description: ID number of the elastic group this pair is a member of.
+        required: true
+        status: SUPPORTED
+      install_config:
+        type: string
+        description: JSON formatted string of install config values.
+        required: true
+        status: SUPPORTED
+      cfed_volume_0:
+        type: json
+        description: CFED Volume.
+        required: true
+        status: SUPPORTED
+      group_tag:
+        type: string
+        description: Key into "usage_info" for members of this elastic group.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+    attributes:
+      Version:
+        type: string
+        description: |
+          Template file version number. This should be updated
+          each time a non-comment change is made to this file.
+        status: SUPPORTED
+      VMA-EXT_IPS:
+        type: string
+        description: IP addresses assigned to the first external network.
+        status: SUPPORTED
+    requirements:
+    - dependency_cfed_0_sig_port_2:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_0_sig_port_2:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_cfed_0_int_ctrl0_port_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_0_int_ctrl0_port_0:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_cfed_server_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_cfed_server_0:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_cfed_0_int_ctrl1_port_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_0_int_ctrl1_port_1:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      memory_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.iops_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_0_int_ctrl0_port_0:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_0_int_ctrl1_port_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_0_sig_port_2:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      host_cfed_server_0:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      instance_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_util_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_0_sig_port_2:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.capacity_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_0_int_ctrl0_port_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.allocation_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      scalable_cfed_server_0:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_0_int_ctrl0_port_0:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.device.read.requests_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_0_int_ctrl1_port_1:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.usage_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_0_sig_port_2:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_server_0:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.resident_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      vcpus_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.latency_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.requests_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.latency_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      os_cfed_server_0:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_server_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.ephemeral.size_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.root.size_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_0_int_ctrl1_port_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      endpoint_cfed_server_0:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.usage_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.allocation_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu.delta_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.usage_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.heat.cfed:
+    derived_from: org.openecomp.resource.abstract.nodes.VFC
+    properties:
+      cfed_flavor_name:
+        type: string
+        description: VM flavor name.
+        required: true
+        status: SUPPORTED
+      cfed_sigv6_ipmap_sideB_0_fixed_dbaas:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cfed_1_int_ctrl0_port_0_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      cfed_sig_ipmap_sideB_0_fixed_dbaas:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cfed_1_sig_port_2_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      usage_info:
+        type: json
+        description: |
+          Per-VM/vNIC data for members of this elastic group.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      config_info:
+        type: json
+        description: Service configuration and network layout.
+        required: true
+        status: SUPPORTED
+      group_index:
+        type: float
+        description: Index of the VM pair within the elastic group.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - in_range:
+          - 0
+          - null
+      sig_subnet_id:
+        type: string
+        description: UUID of the subnet.
+        required: true
+        status: SUPPORTED
+      workload_context:
+        type: string
+        description: Workload context for this VNF.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      ssh_private_key:
+        type: string
+        description: Private SSH key for VM to VM communication in this system.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_cfed_1_int_ctrl0_port_0_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      int_ctrl1_Sec_Grp:
+        type: string
+        description: Internal network 0 security group UUID.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      current_group_count:
+        type: string
+        description: |
+          Current VM pair count within the elastic group.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl0_port_0_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      total_pair_count:
+        type: string
+        description: |
+          This string will evaluate to the number of PairGroups in the VNF.
+        required: true
+        status: SUPPORTED
+      int_ctrl1_net_id:
+        type: string
+        description: Internal network 1.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      cfed_image_name:
+        type: string
+        description: VM image name.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      ssh_public_key:
+        type: string
+        description: Public SSH key for VM to VM communication in this system.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      port_cfed_1_int_ctrl0_port_0_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_cfed_1_sig_port_2_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      sig_net_id:
+        type: string
+        description: UUID of the network.
+        required: true
+        status: SUPPORTED
+      sigv6_v6_subnet_id:
+        type: string
+        description: UUID of the subnet.
+        required: true
+        status: SUPPORTED
+      vf_module_index:
+        type: float
+        description: Unique index for this VNF Module instance.
+        required: true
+        status: SUPPORTED
+      backup_file1:
+        type: string
+        description: |
+          <cURL path>/<backup file>
+          This is only used for restore (aka "disaster recovery") and
+          only referenced on OAM-A.
+        required: true
+        status: SUPPORTED
+      vf_module_id:
+        type: string
+        description: Unique ID for this VNF module instance.
+        required: true
+        status: SUPPORTED
+      backup_file2:
+        type: string
+        description: |
+          <cURL path>/<backup file>
+          This is only used for restore (aka "disaster recovery") and
+          only referenced on OAM-A.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      cfed_names:
+        type: list
+        description: VM name list.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      role:
+        type: string
+        description: VM role during LCM activities.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - valid_values:
+          - oam
+          - other
+      vnf_name:
+        type: string
+        description: Unique name for this VNF instance.
+        required: true
+        status: SUPPORTED
+      vf_module_name:
+        type: string
+        description: Unique name for this VNF module instance.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl0_port_0_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      port_cfed_1_int_ctrl1_port_1_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      vnf_id:
+        type: string
+        description: Unique ID for this VNF instance.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      lcm_keypair:
+        type: string
+        description: Lifecycle management access key pair.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      availability_zone_1:
+        type: string
+        description: VM availability zone.
+        required: true
+        status: SUPPORTED
+      sig_Sec_Grp:
+        type: string
+        description: UUID of the security group.
+        required: true
+        status: SUPPORTED
+      int_ctrl0_Sec_Grp:
+        type: string
+        description: Internal network 0 security group UUID.
+        required: true
+        status: SUPPORTED
+      net_info_str:
+        type: string
+        description: |
+          JSON formatted string with all network info.
+          This is redundant with int_net_info and ext_net_info except
+          in Kilo there is no way to convert json to string for
+          output as a personality file.
+        required: true
+        status: SUPPORTED
+      ssh_access_key:
+        type: string
+        description: Public SSH key for external access.
+        required: true
+        status: SUPPORTED
+      int_ctrl0_net_id:
+        type: string
+        description: Internal network 0.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      environment_context:
+        type: string
+        description: Environment context for this VNF.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl0_port_0_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      pair2idx:
+        type: json
+        description: Map group index to VMtype index.
+        required: true
+        status: SUPPORTED
+      vm_role:
+        type: string
+        description: Unique role for these VMs.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl0_port_0_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_cfed_1_int_ctrl0_port_0_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl0_port_0_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      group_id:
+        type: string
+        description: ID number of the elastic group this pair is a member of.
+        required: true
+        status: SUPPORTED
+      install_config:
+        type: string
+        description: JSON formatted string of install config values.
+        required: true
+        status: SUPPORTED
+      cfed_volume_1:
+        type: json
+        description: CFED Volume.
+        required: true
+        status: SUPPORTED
+      group_tag:
+        type: string
+        description: Key into "usage_info" for members of this elastic group.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+    attributes:
+      VMB-EXT_IPS:
+        type: string
+        description: IP addresses assigned to the first external network.
+        status: SUPPORTED
+      Version:
+        type: string
+        description: |
+          Template file version number. This should be updated
+          each time a non-comment change is made to this file.
+        status: SUPPORTED
+    requirements:
+    - dependency_cfed_server_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_cfed_server_1:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_cfed_1_int_ctrl1_port_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_1_int_ctrl1_port_1:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_cfed_1_int_ctrl0_port_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_1_int_ctrl0_port_0:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_cfed_1_sig_port_2:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_1_sig_port_2:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      network.incoming.bytes_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.iops_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      instance_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      host_cfed_server_1:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_1_sig_port_2:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.latency_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.capacity_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_util_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      scalable_cfed_server_1:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.allocation_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_1_int_ctrl0_port_0:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_1_int_ctrl1_port_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_1_sig_port_2:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.read.bytes_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.usage_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_1_int_ctrl1_port_1:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      binding_cfed_1_int_ctrl0_port_0:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.device.read.requests_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.resident_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      vcpus_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_1_sig_port_2:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.latency_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_server_1:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.requests_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      endpoint_cfed_server_1:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      os_cfed_server_1:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_server_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.ephemeral.size_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.root.size_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.usage_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.allocation_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu.delta_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_1_int_ctrl1_port_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_1_int_ctrl0_port_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.usage_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.heat.nest_common:
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+    properties:
+      total_vm_pairs:
+        type: string
+        description: |
+          This string will evaluate to the number of PairGroups in the VNF.
+        required: true
+        status: SUPPORTED
+      ext_net_list:
+        type: list
+        description: List of applicable subnet tags.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      int_net_count:
+        type: float
+        description: Number of internal networks.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - valid_values:
+          - 1
+          - 2
+      ext_net_info:
+        type: json
+        description: |
+          Maps the network strings used in this HOT file
+           to network info for the target cloud.
+        required: true
+        status: SUPPORTED
+      vnf_name:
+        type: string
+        description: Unique name for this VNF instance.
+        required: true
+        status: SUPPORTED
+      int_net1_label:
+        type: json
+        description: |
+          Map the number of internal networks to an internal net1 label
+          or the empty string.
+        required: true
+        status: SUPPORTED
+    attributes:
+      NetInfoStr:
+        type: string
+        description: Per-subnet information in string format.
+        status: SUPPORTED
+      PrivateKey:
+        type: string
+        description: Private SSH key for pre-install intra-VM communication.
+        status: SUPPORTED
+      Version:
+        type: string
+        description: |
+          Template file version number. This should be updated
+          each time a non-comment change is made to this file.
+        status: SUPPORTED
+      PublicKey:
+        type: string
+        description: Public SSH key for pre-install intra-VM communication.
+        status: SUPPORTED
+      TotalPairCount:
+        type: string
+        description: |
+          This string will evaluate to the number of PairGroups in the VNF.
+        status: SUPPORTED
+      IntNetInfo:
+        type: string
+        description: Internal network attributes.
+        status: SUPPORTED
+      OpenSec:
+        type: string
+        description: Open security group.
+        status: SUPPORTED
+    requirements:
+    - dependency_Shared_Sec_Grp:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - port_Shared_Sec_Grp:
+        capability: tosca.capabilities.Attachment
+        node: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+        relationship: org.openecomp.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_int_ctrl0_network:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_int_ctrl1_network:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    capabilities:
+      feature_int_ctrl0_network:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_int_ctrl0_network:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      end_point_int_ctrl0_network:
+        type: tosca.capabilities.Endpoint
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_int_ctrl1_network:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      end_point_int_ctrl1_network:
+        type: tosca.capabilities.Endpoint
+        occurrences:
+        - 1
+        - UNBOUNDED
+      link_int_ctrl1_network:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_Shared_Sec_Grp:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_int_ctrl1_network:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      link_int_ctrl0_network:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 1
         - UNBOUNDED
\ No newline at end of file
index 35d7a89..c56497f 100644 (file)
@@ -935,4 +935,1994 @@ node_types:
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.heat.base_att_cfed_nested_volume:
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+    properties:
+      size:
+        type: float
+        description: Size of /storage in GB.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - in_range:
+          - 4
+          - null
+      vnf_name:
+        type: string
+        description: Unique name for this VNF instance.
+        required: true
+        status: SUPPORTED
+      index:
+        type: float
+        description: number of volumes to spin up
+        required: true
+        status: SUPPORTED
+      OS::stack_name:
+        type: string
+        required: false
+        status: SUPPORTED
+    attributes:
+      cfed_volume_0:
+        type: string
+        description: CFED Volume UUID
+        status: SUPPORTED
+      cfed_volume_1:
+        type: string
+        description: CFED Volume UUID
+        status: SUPPORTED
+    requirements:
+    - dependency_cfed_volume_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_cfed_volume_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    capabilities:
+      feature_cfed_volume_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_volume_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_volume_0:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_volume_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.heat.cfed_1:
+    derived_from: org.openecomp.resource.abstract.nodes.VFC
+    properties:
+      cfed_flavor_name:
+        type: string
+        description: VM flavor name.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      usage_info:
+        type: json
+        description: |
+          Per-VM/vNIC data for members of this elastic group.
+        required: true
+        status: SUPPORTED
+      config_info:
+        type: json
+        description: Service configuration and network layout.
+        required: true
+        status: SUPPORTED
+      group_index:
+        type: float
+        description: Index of the VM pair within the elastic group.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - in_range:
+          - 0
+          - null
+      sig_subnet_id:
+        type: string
+        description: UUID of the subnet.
+        required: true
+        status: SUPPORTED
+      workload_context:
+        type: string
+        description: Workload context for this VNF.
+        required: true
+        status: SUPPORTED
+      ssh_private_key:
+        type: string
+        description: Private SSH key for VM to VM communication in this system.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_cfed_0_int_ctrl0_port_0_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_cfed_0_sig_port_2_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      int_ctrl1_Sec_Grp:
+        type: string
+        description: Internal network 0 security group UUID.
+        required: true
+        status: SUPPORTED
+      current_group_count:
+        type: string
+        description: |
+          Current VM pair count within the elastic group.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      total_pair_count:
+        type: string
+        description: |
+          This string will evaluate to the number of PairGroups in the VNF.
+        required: true
+        status: SUPPORTED
+      cfed_sig_ipmap_sideA_0_float_published:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cfed_0_sig_port_2_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      int_ctrl1_net_id:
+        type: string
+        description: Internal network 1.
+        required: true
+        status: SUPPORTED
+      cfed_sigv6_ipmap_sideA_0_fixed_dbaas:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      cfed_image_name:
+        type: string
+        description: VM image name.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      cfed_sigv6_ipmap_sideA_0_float_published:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      cfed_sig_ipmap_sideA_0_fixed_dbaas:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cfed_0_int_ctrl0_port_0_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      ssh_public_key:
+        type: string
+        description: Public SSH key for VM to VM communication in this system.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_cfed_0_int_ctrl1_port_1_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      sig_net_id:
+        type: string
+        description: UUID of the network.
+        required: true
+        status: SUPPORTED
+      sigv6_v6_subnet_id:
+        type: string
+        description: UUID of the subnet.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      vf_module_index:
+        type: float
+        description: Unique index for this VNF Module instance.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      backup_file1:
+        type: string
+        description: |
+          <cURL path>/<backup file>
+          This is only used for restore (aka "disaster recovery") and
+          only referenced on OAM-A.
+        required: true
+        status: SUPPORTED
+      vf_module_id:
+        type: string
+        description: Unique ID for this VNF module instance.
+        required: true
+        status: SUPPORTED
+      backup_file2:
+        type: string
+        description: |
+          <cURL path>/<backup file>
+          This is only used for restore (aka "disaster recovery") and
+          only referenced on OAM-A.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      cfed_names:
+        type: list
+        description: VM name list.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      role:
+        type: string
+        description: VM role during LCM activities.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - valid_values:
+          - oam
+          - other
+      port_cfed_0_int_ctrl1_port_1_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      vnf_name:
+        type: string
+        description: Unique name for this VNF instance.
+        required: true
+        status: SUPPORTED
+      vf_module_name:
+        type: string
+        description: Unique name for this VNF module instance.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      vnf_id:
+        type: string
+        description: Unique ID for this VNF instance.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      lcm_keypair:
+        type: string
+        description: Lifecycle management access key pair.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      availability_zone_0:
+        type: string
+        description: VM availability zone.
+        required: true
+        status: SUPPORTED
+      sig_Sec_Grp:
+        type: string
+        description: UUID of the security group.
+        required: true
+        status: SUPPORTED
+      int_ctrl0_Sec_Grp:
+        type: string
+        description: Internal network 0 security group UUID.
+        required: true
+        status: SUPPORTED
+      net_info_str:
+        type: string
+        description: |
+          JSON formatted string with all network info.
+          This is redundant with int_net_info and ext_net_info except
+          in Kilo there is no way to convert json to string for
+          output as a personality file.
+        required: true
+        status: SUPPORTED
+      ssh_access_key:
+        type: string
+        description: Public SSH key for external access.
+        required: true
+        status: SUPPORTED
+      int_ctrl0_net_id:
+        type: string
+        description: Internal network 0.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      environment_context:
+        type: string
+        description: Environment context for this VNF.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      pair2idx:
+        type: json
+        description: Map group index to VMtype index.
+        required: true
+        status: SUPPORTED
+      vm_role:
+        type: string
+        description: Unique role for these VMs.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      group_id:
+        type: string
+        description: ID number of the elastic group this pair is a member of.
+        required: true
+        status: SUPPORTED
+      install_config:
+        type: string
+        description: JSON formatted string of install config values.
+        required: true
+        status: SUPPORTED
+      cfed_volume_0:
+        type: json
+        description: CFED Volume.
+        required: true
+        status: SUPPORTED
+      group_tag:
+        type: string
+        description: Key into "usage_info" for members of this elastic group.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+    attributes:
+      Version:
+        type: string
+        description: |
+          Template file version number. This should be updated
+          each time a non-comment change is made to this file.
+        status: SUPPORTED
+      VMA-EXT_IPS:
+        type: string
+        description: IP addresses assigned to the first external network.
+        status: SUPPORTED
+    requirements:
+    - dependency_cfed_0_sig_port_2:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_0_sig_port_2:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_cfed_0_int_ctrl0_port_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_0_int_ctrl0_port_0:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_cfed_server_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_cfed_server_0:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_cfed_0_int_ctrl1_port_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_0_int_ctrl1_port_1:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      memory_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.iops_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_0_int_ctrl0_port_0:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_0_int_ctrl1_port_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_0_sig_port_2:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      host_cfed_server_0:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      instance_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_util_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_0_sig_port_2:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.capacity_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_0_int_ctrl0_port_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.allocation_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      scalable_cfed_server_0:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_0_int_ctrl0_port_0:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.device.read.requests_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_0_int_ctrl1_port_1:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.usage_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_0_sig_port_2:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_server_0:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.resident_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      vcpus_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.latency_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.requests_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.latency_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      os_cfed_server_0:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_server_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.ephemeral.size_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.root.size_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_0_int_ctrl1_port_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      endpoint_cfed_server_0:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.usage_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.allocation_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu.delta_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.usage_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.heat.cfed:
+    derived_from: org.openecomp.resource.abstract.nodes.VFC
+    properties:
+      cfed_flavor_name:
+        type: string
+        description: VM flavor name.
+        required: true
+        status: SUPPORTED
+      cfed_sigv6_ipmap_sideB_0_fixed_dbaas:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cfed_1_int_ctrl0_port_0_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      cfed_sig_ipmap_sideB_0_fixed_dbaas:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cfed_1_sig_port_2_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      usage_info:
+        type: json
+        description: |
+          Per-VM/vNIC data for members of this elastic group.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      config_info:
+        type: json
+        description: Service configuration and network layout.
+        required: true
+        status: SUPPORTED
+      group_index:
+        type: float
+        description: Index of the VM pair within the elastic group.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - in_range:
+          - 0
+          - null
+      sig_subnet_id:
+        type: string
+        description: UUID of the subnet.
+        required: true
+        status: SUPPORTED
+      workload_context:
+        type: string
+        description: Workload context for this VNF.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      ssh_private_key:
+        type: string
+        description: Private SSH key for VM to VM communication in this system.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_cfed_1_int_ctrl0_port_0_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      int_ctrl1_Sec_Grp:
+        type: string
+        description: Internal network 0 security group UUID.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      current_group_count:
+        type: string
+        description: |
+          Current VM pair count within the elastic group.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl0_port_0_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      total_pair_count:
+        type: string
+        description: |
+          This string will evaluate to the number of PairGroups in the VNF.
+        required: true
+        status: SUPPORTED
+      int_ctrl1_net_id:
+        type: string
+        description: Internal network 1.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      cfed_image_name:
+        type: string
+        description: VM image name.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      ssh_public_key:
+        type: string
+        description: Public SSH key for VM to VM communication in this system.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      port_cfed_1_int_ctrl0_port_0_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_cfed_1_sig_port_2_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      sig_net_id:
+        type: string
+        description: UUID of the network.
+        required: true
+        status: SUPPORTED
+      sigv6_v6_subnet_id:
+        type: string
+        description: UUID of the subnet.
+        required: true
+        status: SUPPORTED
+      vf_module_index:
+        type: float
+        description: Unique index for this VNF Module instance.
+        required: true
+        status: SUPPORTED
+      backup_file1:
+        type: string
+        description: |
+          <cURL path>/<backup file>
+          This is only used for restore (aka "disaster recovery") and
+          only referenced on OAM-A.
+        required: true
+        status: SUPPORTED
+      vf_module_id:
+        type: string
+        description: Unique ID for this VNF module instance.
+        required: true
+        status: SUPPORTED
+      backup_file2:
+        type: string
+        description: |
+          <cURL path>/<backup file>
+          This is only used for restore (aka "disaster recovery") and
+          only referenced on OAM-A.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      cfed_names:
+        type: list
+        description: VM name list.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      role:
+        type: string
+        description: VM role during LCM activities.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - valid_values:
+          - oam
+          - other
+      vnf_name:
+        type: string
+        description: Unique name for this VNF instance.
+        required: true
+        status: SUPPORTED
+      vf_module_name:
+        type: string
+        description: Unique name for this VNF module instance.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl0_port_0_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      port_cfed_1_int_ctrl1_port_1_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      vnf_id:
+        type: string
+        description: Unique ID for this VNF instance.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      lcm_keypair:
+        type: string
+        description: Lifecycle management access key pair.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      availability_zone_1:
+        type: string
+        description: VM availability zone.
+        required: true
+        status: SUPPORTED
+      sig_Sec_Grp:
+        type: string
+        description: UUID of the security group.
+        required: true
+        status: SUPPORTED
+      int_ctrl0_Sec_Grp:
+        type: string
+        description: Internal network 0 security group UUID.
+        required: true
+        status: SUPPORTED
+      net_info_str:
+        type: string
+        description: |
+          JSON formatted string with all network info.
+          This is redundant with int_net_info and ext_net_info except
+          in Kilo there is no way to convert json to string for
+          output as a personality file.
+        required: true
+        status: SUPPORTED
+      ssh_access_key:
+        type: string
+        description: Public SSH key for external access.
+        required: true
+        status: SUPPORTED
+      int_ctrl0_net_id:
+        type: string
+        description: Internal network 0.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      environment_context:
+        type: string
+        description: Environment context for this VNF.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl0_port_0_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      pair2idx:
+        type: json
+        description: Map group index to VMtype index.
+        required: true
+        status: SUPPORTED
+      vm_role:
+        type: string
+        description: Unique role for these VMs.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl0_port_0_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_cfed_1_int_ctrl0_port_0_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl0_port_0_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      group_id:
+        type: string
+        description: ID number of the elastic group this pair is a member of.
+        required: true
+        status: SUPPORTED
+      install_config:
+        type: string
+        description: JSON formatted string of install config values.
+        required: true
+        status: SUPPORTED
+      cfed_volume_1:
+        type: json
+        description: CFED Volume.
+        required: true
+        status: SUPPORTED
+      group_tag:
+        type: string
+        description: Key into "usage_info" for members of this elastic group.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+    attributes:
+      VMB-EXT_IPS:
+        type: string
+        description: IP addresses assigned to the first external network.
+        status: SUPPORTED
+      Version:
+        type: string
+        description: |
+          Template file version number. This should be updated
+          each time a non-comment change is made to this file.
+        status: SUPPORTED
+    requirements:
+    - dependency_cfed_server_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_cfed_server_1:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_cfed_1_int_ctrl1_port_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_1_int_ctrl1_port_1:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_cfed_1_int_ctrl0_port_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_1_int_ctrl0_port_0:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_cfed_1_sig_port_2:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_1_sig_port_2:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      network.incoming.bytes_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.iops_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      instance_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      host_cfed_server_1:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_1_sig_port_2:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.latency_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.capacity_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_util_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      scalable_cfed_server_1:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.allocation_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_1_int_ctrl0_port_0:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_1_int_ctrl1_port_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_1_sig_port_2:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.read.bytes_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.usage_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_1_int_ctrl1_port_1:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      binding_cfed_1_int_ctrl0_port_0:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.device.read.requests_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.resident_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      vcpus_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_1_sig_port_2:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.latency_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_server_1:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.requests_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      endpoint_cfed_server_1:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      os_cfed_server_1:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_server_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.ephemeral.size_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.root.size_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.usage_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.allocation_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu.delta_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_1_int_ctrl1_port_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_1_int_ctrl0_port_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.usage_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.heat.nest_common:
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+    properties:
+      total_vm_pairs:
+        type: string
+        description: |
+          This string will evaluate to the number of PairGroups in the VNF.
+        required: true
+        status: SUPPORTED
+      ext_net_list:
+        type: list
+        description: List of applicable subnet tags.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      int_net_count:
+        type: float
+        description: Number of internal networks.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - valid_values:
+          - 1
+          - 2
+      ext_net_info:
+        type: json
+        description: |
+          Maps the network strings used in this HOT file
+           to network info for the target cloud.
+        required: true
+        status: SUPPORTED
+      vnf_name:
+        type: string
+        description: Unique name for this VNF instance.
+        required: true
+        status: SUPPORTED
+      int_net1_label:
+        type: json
+        description: |
+          Map the number of internal networks to an internal net1 label
+          or the empty string.
+        required: true
+        status: SUPPORTED
+    attributes:
+      NetInfoStr:
+        type: string
+        description: Per-subnet information in string format.
+        status: SUPPORTED
+      PrivateKey:
+        type: string
+        description: Private SSH key for pre-install intra-VM communication.
+        status: SUPPORTED
+      Version:
+        type: string
+        description: |
+          Template file version number. This should be updated
+          each time a non-comment change is made to this file.
+        status: SUPPORTED
+      PublicKey:
+        type: string
+        description: Public SSH key for pre-install intra-VM communication.
+        status: SUPPORTED
+      TotalPairCount:
+        type: string
+        description: |
+          This string will evaluate to the number of PairGroups in the VNF.
+        status: SUPPORTED
+      IntNetInfo:
+        type: string
+        description: Internal network attributes.
+        status: SUPPORTED
+      OpenSec:
+        type: string
+        description: Open security group.
+        status: SUPPORTED
+    requirements:
+    - dependency_Shared_Sec_Grp:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - port_Shared_Sec_Grp:
+        capability: tosca.capabilities.Attachment
+        node: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+        relationship: org.openecomp.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_int_ctrl0_network:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_int_ctrl1_network:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    capabilities:
+      feature_int_ctrl0_network:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_int_ctrl0_network:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      end_point_int_ctrl0_network:
+        type: tosca.capabilities.Endpoint
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_int_ctrl1_network:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      end_point_int_ctrl1_network:
+        type: tosca.capabilities.Endpoint
+        occurrences:
+        - 1
+        - UNBOUNDED
+      link_int_ctrl1_network:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_Shared_Sec_Grp:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_int_ctrl1_network:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      link_int_ctrl0_network:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 1
         - UNBOUNDED
\ No newline at end of file
index 35d7a89..c56497f 100644 (file)
@@ -935,4 +935,1994 @@ node_types:
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.heat.base_att_cfed_nested_volume:
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+    properties:
+      size:
+        type: float
+        description: Size of /storage in GB.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - in_range:
+          - 4
+          - null
+      vnf_name:
+        type: string
+        description: Unique name for this VNF instance.
+        required: true
+        status: SUPPORTED
+      index:
+        type: float
+        description: number of volumes to spin up
+        required: true
+        status: SUPPORTED
+      OS::stack_name:
+        type: string
+        required: false
+        status: SUPPORTED
+    attributes:
+      cfed_volume_0:
+        type: string
+        description: CFED Volume UUID
+        status: SUPPORTED
+      cfed_volume_1:
+        type: string
+        description: CFED Volume UUID
+        status: SUPPORTED
+    requirements:
+    - dependency_cfed_volume_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_cfed_volume_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    capabilities:
+      feature_cfed_volume_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_volume_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_volume_0:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_volume_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.heat.cfed_1:
+    derived_from: org.openecomp.resource.abstract.nodes.VFC
+    properties:
+      cfed_flavor_name:
+        type: string
+        description: VM flavor name.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      usage_info:
+        type: json
+        description: |
+          Per-VM/vNIC data for members of this elastic group.
+        required: true
+        status: SUPPORTED
+      config_info:
+        type: json
+        description: Service configuration and network layout.
+        required: true
+        status: SUPPORTED
+      group_index:
+        type: float
+        description: Index of the VM pair within the elastic group.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - in_range:
+          - 0
+          - null
+      sig_subnet_id:
+        type: string
+        description: UUID of the subnet.
+        required: true
+        status: SUPPORTED
+      workload_context:
+        type: string
+        description: Workload context for this VNF.
+        required: true
+        status: SUPPORTED
+      ssh_private_key:
+        type: string
+        description: Private SSH key for VM to VM communication in this system.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_cfed_0_int_ctrl0_port_0_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_cfed_0_sig_port_2_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      int_ctrl1_Sec_Grp:
+        type: string
+        description: Internal network 0 security group UUID.
+        required: true
+        status: SUPPORTED
+      current_group_count:
+        type: string
+        description: |
+          Current VM pair count within the elastic group.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      total_pair_count:
+        type: string
+        description: |
+          This string will evaluate to the number of PairGroups in the VNF.
+        required: true
+        status: SUPPORTED
+      cfed_sig_ipmap_sideA_0_float_published:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cfed_0_sig_port_2_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      int_ctrl1_net_id:
+        type: string
+        description: Internal network 1.
+        required: true
+        status: SUPPORTED
+      cfed_sigv6_ipmap_sideA_0_fixed_dbaas:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      cfed_image_name:
+        type: string
+        description: VM image name.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      cfed_sigv6_ipmap_sideA_0_float_published:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      cfed_sig_ipmap_sideA_0_fixed_dbaas:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cfed_0_int_ctrl0_port_0_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      ssh_public_key:
+        type: string
+        description: Public SSH key for VM to VM communication in this system.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_cfed_0_int_ctrl1_port_1_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      sig_net_id:
+        type: string
+        description: UUID of the network.
+        required: true
+        status: SUPPORTED
+      sigv6_v6_subnet_id:
+        type: string
+        description: UUID of the subnet.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      vf_module_index:
+        type: float
+        description: Unique index for this VNF Module instance.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      backup_file1:
+        type: string
+        description: |
+          <cURL path>/<backup file>
+          This is only used for restore (aka "disaster recovery") and
+          only referenced on OAM-A.
+        required: true
+        status: SUPPORTED
+      vf_module_id:
+        type: string
+        description: Unique ID for this VNF module instance.
+        required: true
+        status: SUPPORTED
+      backup_file2:
+        type: string
+        description: |
+          <cURL path>/<backup file>
+          This is only used for restore (aka "disaster recovery") and
+          only referenced on OAM-A.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      cfed_names:
+        type: list
+        description: VM name list.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      role:
+        type: string
+        description: VM role during LCM activities.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - valid_values:
+          - oam
+          - other
+      port_cfed_0_int_ctrl1_port_1_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      vnf_name:
+        type: string
+        description: Unique name for this VNF instance.
+        required: true
+        status: SUPPORTED
+      vf_module_name:
+        type: string
+        description: Unique name for this VNF module instance.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      vnf_id:
+        type: string
+        description: Unique ID for this VNF instance.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      lcm_keypair:
+        type: string
+        description: Lifecycle management access key pair.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      availability_zone_0:
+        type: string
+        description: VM availability zone.
+        required: true
+        status: SUPPORTED
+      sig_Sec_Grp:
+        type: string
+        description: UUID of the security group.
+        required: true
+        status: SUPPORTED
+      int_ctrl0_Sec_Grp:
+        type: string
+        description: Internal network 0 security group UUID.
+        required: true
+        status: SUPPORTED
+      net_info_str:
+        type: string
+        description: |
+          JSON formatted string with all network info.
+          This is redundant with int_net_info and ext_net_info except
+          in Kilo there is no way to convert json to string for
+          output as a personality file.
+        required: true
+        status: SUPPORTED
+      ssh_access_key:
+        type: string
+        description: Public SSH key for external access.
+        required: true
+        status: SUPPORTED
+      int_ctrl0_net_id:
+        type: string
+        description: Internal network 0.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      environment_context:
+        type: string
+        description: Environment context for this VNF.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      pair2idx:
+        type: json
+        description: Map group index to VMtype index.
+        required: true
+        status: SUPPORTED
+      vm_role:
+        type: string
+        description: Unique role for these VMs.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      group_id:
+        type: string
+        description: ID number of the elastic group this pair is a member of.
+        required: true
+        status: SUPPORTED
+      install_config:
+        type: string
+        description: JSON formatted string of install config values.
+        required: true
+        status: SUPPORTED
+      cfed_volume_0:
+        type: json
+        description: CFED Volume.
+        required: true
+        status: SUPPORTED
+      group_tag:
+        type: string
+        description: Key into "usage_info" for members of this elastic group.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+    attributes:
+      Version:
+        type: string
+        description: |
+          Template file version number. This should be updated
+          each time a non-comment change is made to this file.
+        status: SUPPORTED
+      VMA-EXT_IPS:
+        type: string
+        description: IP addresses assigned to the first external network.
+        status: SUPPORTED
+    requirements:
+    - dependency_cfed_0_sig_port_2:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_0_sig_port_2:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_cfed_0_int_ctrl0_port_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_0_int_ctrl0_port_0:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_cfed_server_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_cfed_server_0:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_cfed_0_int_ctrl1_port_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_0_int_ctrl1_port_1:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      memory_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.iops_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_0_int_ctrl0_port_0:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_0_int_ctrl1_port_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_0_sig_port_2:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      host_cfed_server_0:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      instance_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_util_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_0_sig_port_2:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.capacity_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_0_int_ctrl0_port_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.allocation_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      scalable_cfed_server_0:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_0_int_ctrl0_port_0:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.device.read.requests_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_0_int_ctrl1_port_1:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.usage_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_0_sig_port_2:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_server_0:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.resident_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      vcpus_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.latency_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.requests_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.latency_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      os_cfed_server_0:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_server_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.ephemeral.size_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.root.size_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_0_int_ctrl1_port_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      endpoint_cfed_server_0:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.usage_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.allocation_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu.delta_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.usage_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.heat.cfed:
+    derived_from: org.openecomp.resource.abstract.nodes.VFC
+    properties:
+      cfed_flavor_name:
+        type: string
+        description: VM flavor name.
+        required: true
+        status: SUPPORTED
+      cfed_sigv6_ipmap_sideB_0_fixed_dbaas:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cfed_1_int_ctrl0_port_0_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      cfed_sig_ipmap_sideB_0_fixed_dbaas:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cfed_1_sig_port_2_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      usage_info:
+        type: json
+        description: |
+          Per-VM/vNIC data for members of this elastic group.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      config_info:
+        type: json
+        description: Service configuration and network layout.
+        required: true
+        status: SUPPORTED
+      group_index:
+        type: float
+        description: Index of the VM pair within the elastic group.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - in_range:
+          - 0
+          - null
+      sig_subnet_id:
+        type: string
+        description: UUID of the subnet.
+        required: true
+        status: SUPPORTED
+      workload_context:
+        type: string
+        description: Workload context for this VNF.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      ssh_private_key:
+        type: string
+        description: Private SSH key for VM to VM communication in this system.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_cfed_1_int_ctrl0_port_0_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      int_ctrl1_Sec_Grp:
+        type: string
+        description: Internal network 0 security group UUID.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      current_group_count:
+        type: string
+        description: |
+          Current VM pair count within the elastic group.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl0_port_0_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      total_pair_count:
+        type: string
+        description: |
+          This string will evaluate to the number of PairGroups in the VNF.
+        required: true
+        status: SUPPORTED
+      int_ctrl1_net_id:
+        type: string
+        description: Internal network 1.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      cfed_image_name:
+        type: string
+        description: VM image name.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      ssh_public_key:
+        type: string
+        description: Public SSH key for VM to VM communication in this system.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      port_cfed_1_int_ctrl0_port_0_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_cfed_1_sig_port_2_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      sig_net_id:
+        type: string
+        description: UUID of the network.
+        required: true
+        status: SUPPORTED
+      sigv6_v6_subnet_id:
+        type: string
+        description: UUID of the subnet.
+        required: true
+        status: SUPPORTED
+      vf_module_index:
+        type: float
+        description: Unique index for this VNF Module instance.
+        required: true
+        status: SUPPORTED
+      backup_file1:
+        type: string
+        description: |
+          <cURL path>/<backup file>
+          This is only used for restore (aka "disaster recovery") and
+          only referenced on OAM-A.
+        required: true
+        status: SUPPORTED
+      vf_module_id:
+        type: string
+        description: Unique ID for this VNF module instance.
+        required: true
+        status: SUPPORTED
+      backup_file2:
+        type: string
+        description: |
+          <cURL path>/<backup file>
+          This is only used for restore (aka "disaster recovery") and
+          only referenced on OAM-A.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      cfed_names:
+        type: list
+        description: VM name list.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      role:
+        type: string
+        description: VM role during LCM activities.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - valid_values:
+          - oam
+          - other
+      vnf_name:
+        type: string
+        description: Unique name for this VNF instance.
+        required: true
+        status: SUPPORTED
+      vf_module_name:
+        type: string
+        description: Unique name for this VNF module instance.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl0_port_0_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      port_cfed_1_int_ctrl1_port_1_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      vnf_id:
+        type: string
+        description: Unique ID for this VNF instance.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      lcm_keypair:
+        type: string
+        description: Lifecycle management access key pair.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      availability_zone_1:
+        type: string
+        description: VM availability zone.
+        required: true
+        status: SUPPORTED
+      sig_Sec_Grp:
+        type: string
+        description: UUID of the security group.
+        required: true
+        status: SUPPORTED
+      int_ctrl0_Sec_Grp:
+        type: string
+        description: Internal network 0 security group UUID.
+        required: true
+        status: SUPPORTED
+      net_info_str:
+        type: string
+        description: |
+          JSON formatted string with all network info.
+          This is redundant with int_net_info and ext_net_info except
+          in Kilo there is no way to convert json to string for
+          output as a personality file.
+        required: true
+        status: SUPPORTED
+      ssh_access_key:
+        type: string
+        description: Public SSH key for external access.
+        required: true
+        status: SUPPORTED
+      int_ctrl0_net_id:
+        type: string
+        description: Internal network 0.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      environment_context:
+        type: string
+        description: Environment context for this VNF.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl0_port_0_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      pair2idx:
+        type: json
+        description: Map group index to VMtype index.
+        required: true
+        status: SUPPORTED
+      vm_role:
+        type: string
+        description: Unique role for these VMs.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl0_port_0_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_cfed_1_int_ctrl0_port_0_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl0_port_0_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      group_id:
+        type: string
+        description: ID number of the elastic group this pair is a member of.
+        required: true
+        status: SUPPORTED
+      install_config:
+        type: string
+        description: JSON formatted string of install config values.
+        required: true
+        status: SUPPORTED
+      cfed_volume_1:
+        type: json
+        description: CFED Volume.
+        required: true
+        status: SUPPORTED
+      group_tag:
+        type: string
+        description: Key into "usage_info" for members of this elastic group.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+    attributes:
+      VMB-EXT_IPS:
+        type: string
+        description: IP addresses assigned to the first external network.
+        status: SUPPORTED
+      Version:
+        type: string
+        description: |
+          Template file version number. This should be updated
+          each time a non-comment change is made to this file.
+        status: SUPPORTED
+    requirements:
+    - dependency_cfed_server_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_cfed_server_1:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_cfed_1_int_ctrl1_port_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_1_int_ctrl1_port_1:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_cfed_1_int_ctrl0_port_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_1_int_ctrl0_port_0:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_cfed_1_sig_port_2:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_1_sig_port_2:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      network.incoming.bytes_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.iops_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      instance_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      host_cfed_server_1:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_1_sig_port_2:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.latency_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.capacity_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_util_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      scalable_cfed_server_1:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.allocation_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_1_int_ctrl0_port_0:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_1_int_ctrl1_port_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_1_sig_port_2:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.read.bytes_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.usage_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_1_int_ctrl1_port_1:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      binding_cfed_1_int_ctrl0_port_0:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.device.read.requests_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.resident_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      vcpus_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_1_sig_port_2:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.latency_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_server_1:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.requests_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      endpoint_cfed_server_1:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      os_cfed_server_1:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_server_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.ephemeral.size_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.root.size_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.usage_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.allocation_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu.delta_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_1_int_ctrl1_port_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_1_int_ctrl0_port_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.usage_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.heat.nest_common:
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+    properties:
+      total_vm_pairs:
+        type: string
+        description: |
+          This string will evaluate to the number of PairGroups in the VNF.
+        required: true
+        status: SUPPORTED
+      ext_net_list:
+        type: list
+        description: List of applicable subnet tags.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      int_net_count:
+        type: float
+        description: Number of internal networks.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - valid_values:
+          - 1
+          - 2
+      ext_net_info:
+        type: json
+        description: |
+          Maps the network strings used in this HOT file
+           to network info for the target cloud.
+        required: true
+        status: SUPPORTED
+      vnf_name:
+        type: string
+        description: Unique name for this VNF instance.
+        required: true
+        status: SUPPORTED
+      int_net1_label:
+        type: json
+        description: |
+          Map the number of internal networks to an internal net1 label
+          or the empty string.
+        required: true
+        status: SUPPORTED
+    attributes:
+      NetInfoStr:
+        type: string
+        description: Per-subnet information in string format.
+        status: SUPPORTED
+      PrivateKey:
+        type: string
+        description: Private SSH key for pre-install intra-VM communication.
+        status: SUPPORTED
+      Version:
+        type: string
+        description: |
+          Template file version number. This should be updated
+          each time a non-comment change is made to this file.
+        status: SUPPORTED
+      PublicKey:
+        type: string
+        description: Public SSH key for pre-install intra-VM communication.
+        status: SUPPORTED
+      TotalPairCount:
+        type: string
+        description: |
+          This string will evaluate to the number of PairGroups in the VNF.
+        status: SUPPORTED
+      IntNetInfo:
+        type: string
+        description: Internal network attributes.
+        status: SUPPORTED
+      OpenSec:
+        type: string
+        description: Open security group.
+        status: SUPPORTED
+    requirements:
+    - dependency_Shared_Sec_Grp:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - port_Shared_Sec_Grp:
+        capability: tosca.capabilities.Attachment
+        node: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+        relationship: org.openecomp.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_int_ctrl0_network:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_int_ctrl1_network:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    capabilities:
+      feature_int_ctrl0_network:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_int_ctrl0_network:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      end_point_int_ctrl0_network:
+        type: tosca.capabilities.Endpoint
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_int_ctrl1_network:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      end_point_int_ctrl1_network:
+        type: tosca.capabilities.Endpoint
+        occurrences:
+        - 1
+        - UNBOUNDED
+      link_int_ctrl1_network:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_Shared_Sec_Grp:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_int_ctrl1_network:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      link_int_ctrl0_network:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 1
         - UNBOUNDED
\ No newline at end of file
index 35d7a89..c56497f 100644 (file)
@@ -935,4 +935,1994 @@ node_types:
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.heat.base_att_cfed_nested_volume:
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+    properties:
+      size:
+        type: float
+        description: Size of /storage in GB.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - in_range:
+          - 4
+          - null
+      vnf_name:
+        type: string
+        description: Unique name for this VNF instance.
+        required: true
+        status: SUPPORTED
+      index:
+        type: float
+        description: number of volumes to spin up
+        required: true
+        status: SUPPORTED
+      OS::stack_name:
+        type: string
+        required: false
+        status: SUPPORTED
+    attributes:
+      cfed_volume_0:
+        type: string
+        description: CFED Volume UUID
+        status: SUPPORTED
+      cfed_volume_1:
+        type: string
+        description: CFED Volume UUID
+        status: SUPPORTED
+    requirements:
+    - dependency_cfed_volume_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_cfed_volume_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    capabilities:
+      feature_cfed_volume_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_volume_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_volume_0:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_volume_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.heat.cfed_1:
+    derived_from: org.openecomp.resource.abstract.nodes.VFC
+    properties:
+      cfed_flavor_name:
+        type: string
+        description: VM flavor name.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      usage_info:
+        type: json
+        description: |
+          Per-VM/vNIC data for members of this elastic group.
+        required: true
+        status: SUPPORTED
+      config_info:
+        type: json
+        description: Service configuration and network layout.
+        required: true
+        status: SUPPORTED
+      group_index:
+        type: float
+        description: Index of the VM pair within the elastic group.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - in_range:
+          - 0
+          - null
+      sig_subnet_id:
+        type: string
+        description: UUID of the subnet.
+        required: true
+        status: SUPPORTED
+      workload_context:
+        type: string
+        description: Workload context for this VNF.
+        required: true
+        status: SUPPORTED
+      ssh_private_key:
+        type: string
+        description: Private SSH key for VM to VM communication in this system.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_cfed_0_int_ctrl0_port_0_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_cfed_0_sig_port_2_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      int_ctrl1_Sec_Grp:
+        type: string
+        description: Internal network 0 security group UUID.
+        required: true
+        status: SUPPORTED
+      current_group_count:
+        type: string
+        description: |
+          Current VM pair count within the elastic group.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      total_pair_count:
+        type: string
+        description: |
+          This string will evaluate to the number of PairGroups in the VNF.
+        required: true
+        status: SUPPORTED
+      cfed_sig_ipmap_sideA_0_float_published:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cfed_0_sig_port_2_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      int_ctrl1_net_id:
+        type: string
+        description: Internal network 1.
+        required: true
+        status: SUPPORTED
+      cfed_sigv6_ipmap_sideA_0_fixed_dbaas:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      cfed_image_name:
+        type: string
+        description: VM image name.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      cfed_sigv6_ipmap_sideA_0_float_published:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      cfed_sig_ipmap_sideA_0_fixed_dbaas:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cfed_0_int_ctrl0_port_0_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      ssh_public_key:
+        type: string
+        description: Public SSH key for VM to VM communication in this system.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_cfed_0_int_ctrl1_port_1_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      sig_net_id:
+        type: string
+        description: UUID of the network.
+        required: true
+        status: SUPPORTED
+      sigv6_v6_subnet_id:
+        type: string
+        description: UUID of the subnet.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      vf_module_index:
+        type: float
+        description: Unique index for this VNF Module instance.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      backup_file1:
+        type: string
+        description: |
+          <cURL path>/<backup file>
+          This is only used for restore (aka "disaster recovery") and
+          only referenced on OAM-A.
+        required: true
+        status: SUPPORTED
+      vf_module_id:
+        type: string
+        description: Unique ID for this VNF module instance.
+        required: true
+        status: SUPPORTED
+      backup_file2:
+        type: string
+        description: |
+          <cURL path>/<backup file>
+          This is only used for restore (aka "disaster recovery") and
+          only referenced on OAM-A.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      cfed_names:
+        type: list
+        description: VM name list.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      role:
+        type: string
+        description: VM role during LCM activities.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - valid_values:
+          - oam
+          - other
+      port_cfed_0_int_ctrl1_port_1_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      vnf_name:
+        type: string
+        description: Unique name for this VNF instance.
+        required: true
+        status: SUPPORTED
+      vf_module_name:
+        type: string
+        description: Unique name for this VNF module instance.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      vnf_id:
+        type: string
+        description: Unique ID for this VNF instance.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      lcm_keypair:
+        type: string
+        description: Lifecycle management access key pair.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      availability_zone_0:
+        type: string
+        description: VM availability zone.
+        required: true
+        status: SUPPORTED
+      sig_Sec_Grp:
+        type: string
+        description: UUID of the security group.
+        required: true
+        status: SUPPORTED
+      int_ctrl0_Sec_Grp:
+        type: string
+        description: Internal network 0 security group UUID.
+        required: true
+        status: SUPPORTED
+      net_info_str:
+        type: string
+        description: |
+          JSON formatted string with all network info.
+          This is redundant with int_net_info and ext_net_info except
+          in Kilo there is no way to convert json to string for
+          output as a personality file.
+        required: true
+        status: SUPPORTED
+      ssh_access_key:
+        type: string
+        description: Public SSH key for external access.
+        required: true
+        status: SUPPORTED
+      int_ctrl0_net_id:
+        type: string
+        description: Internal network 0.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      environment_context:
+        type: string
+        description: Environment context for this VNF.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      pair2idx:
+        type: json
+        description: Map group index to VMtype index.
+        required: true
+        status: SUPPORTED
+      vm_role:
+        type: string
+        description: Unique role for these VMs.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      group_id:
+        type: string
+        description: ID number of the elastic group this pair is a member of.
+        required: true
+        status: SUPPORTED
+      install_config:
+        type: string
+        description: JSON formatted string of install config values.
+        required: true
+        status: SUPPORTED
+      cfed_volume_0:
+        type: json
+        description: CFED Volume.
+        required: true
+        status: SUPPORTED
+      group_tag:
+        type: string
+        description: Key into "usage_info" for members of this elastic group.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+    attributes:
+      Version:
+        type: string
+        description: |
+          Template file version number. This should be updated
+          each time a non-comment change is made to this file.
+        status: SUPPORTED
+      VMA-EXT_IPS:
+        type: string
+        description: IP addresses assigned to the first external network.
+        status: SUPPORTED
+    requirements:
+    - dependency_cfed_0_sig_port_2:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_0_sig_port_2:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_cfed_0_int_ctrl0_port_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_0_int_ctrl0_port_0:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_cfed_server_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_cfed_server_0:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_cfed_0_int_ctrl1_port_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_0_int_ctrl1_port_1:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      memory_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.iops_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_0_int_ctrl0_port_0:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_0_int_ctrl1_port_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_0_sig_port_2:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      host_cfed_server_0:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      instance_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_util_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_0_sig_port_2:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.capacity_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_0_int_ctrl0_port_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.allocation_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      scalable_cfed_server_0:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_0_int_ctrl0_port_0:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.device.read.requests_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_0_int_ctrl1_port_1:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.usage_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_0_sig_port_2:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_server_0:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.resident_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      vcpus_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.latency_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.requests_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.latency_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      os_cfed_server_0:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_server_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.ephemeral.size_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.root.size_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_0_int_ctrl1_port_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      endpoint_cfed_server_0:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.usage_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.allocation_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu.delta_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.usage_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.heat.cfed:
+    derived_from: org.openecomp.resource.abstract.nodes.VFC
+    properties:
+      cfed_flavor_name:
+        type: string
+        description: VM flavor name.
+        required: true
+        status: SUPPORTED
+      cfed_sigv6_ipmap_sideB_0_fixed_dbaas:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cfed_1_int_ctrl0_port_0_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      cfed_sig_ipmap_sideB_0_fixed_dbaas:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cfed_1_sig_port_2_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      usage_info:
+        type: json
+        description: |
+          Per-VM/vNIC data for members of this elastic group.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      config_info:
+        type: json
+        description: Service configuration and network layout.
+        required: true
+        status: SUPPORTED
+      group_index:
+        type: float
+        description: Index of the VM pair within the elastic group.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - in_range:
+          - 0
+          - null
+      sig_subnet_id:
+        type: string
+        description: UUID of the subnet.
+        required: true
+        status: SUPPORTED
+      workload_context:
+        type: string
+        description: Workload context for this VNF.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      ssh_private_key:
+        type: string
+        description: Private SSH key for VM to VM communication in this system.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_cfed_1_int_ctrl0_port_0_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      int_ctrl1_Sec_Grp:
+        type: string
+        description: Internal network 0 security group UUID.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      current_group_count:
+        type: string
+        description: |
+          Current VM pair count within the elastic group.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl0_port_0_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      total_pair_count:
+        type: string
+        description: |
+          This string will evaluate to the number of PairGroups in the VNF.
+        required: true
+        status: SUPPORTED
+      int_ctrl1_net_id:
+        type: string
+        description: Internal network 1.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      cfed_image_name:
+        type: string
+        description: VM image name.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      ssh_public_key:
+        type: string
+        description: Public SSH key for VM to VM communication in this system.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      port_cfed_1_int_ctrl0_port_0_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_cfed_1_sig_port_2_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      sig_net_id:
+        type: string
+        description: UUID of the network.
+        required: true
+        status: SUPPORTED
+      sigv6_v6_subnet_id:
+        type: string
+        description: UUID of the subnet.
+        required: true
+        status: SUPPORTED
+      vf_module_index:
+        type: float
+        description: Unique index for this VNF Module instance.
+        required: true
+        status: SUPPORTED
+      backup_file1:
+        type: string
+        description: |
+          <cURL path>/<backup file>
+          This is only used for restore (aka "disaster recovery") and
+          only referenced on OAM-A.
+        required: true
+        status: SUPPORTED
+      vf_module_id:
+        type: string
+        description: Unique ID for this VNF module instance.
+        required: true
+        status: SUPPORTED
+      backup_file2:
+        type: string
+        description: |
+          <cURL path>/<backup file>
+          This is only used for restore (aka "disaster recovery") and
+          only referenced on OAM-A.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      cfed_names:
+        type: list
+        description: VM name list.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      role:
+        type: string
+        description: VM role during LCM activities.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - valid_values:
+          - oam
+          - other
+      vnf_name:
+        type: string
+        description: Unique name for this VNF instance.
+        required: true
+        status: SUPPORTED
+      vf_module_name:
+        type: string
+        description: Unique name for this VNF module instance.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl0_port_0_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      port_cfed_1_int_ctrl1_port_1_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      vnf_id:
+        type: string
+        description: Unique ID for this VNF instance.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      lcm_keypair:
+        type: string
+        description: Lifecycle management access key pair.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      availability_zone_1:
+        type: string
+        description: VM availability zone.
+        required: true
+        status: SUPPORTED
+      sig_Sec_Grp:
+        type: string
+        description: UUID of the security group.
+        required: true
+        status: SUPPORTED
+      int_ctrl0_Sec_Grp:
+        type: string
+        description: Internal network 0 security group UUID.
+        required: true
+        status: SUPPORTED
+      net_info_str:
+        type: string
+        description: |
+          JSON formatted string with all network info.
+          This is redundant with int_net_info and ext_net_info except
+          in Kilo there is no way to convert json to string for
+          output as a personality file.
+        required: true
+        status: SUPPORTED
+      ssh_access_key:
+        type: string
+        description: Public SSH key for external access.
+        required: true
+        status: SUPPORTED
+      int_ctrl0_net_id:
+        type: string
+        description: Internal network 0.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      environment_context:
+        type: string
+        description: Environment context for this VNF.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl0_port_0_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      pair2idx:
+        type: json
+        description: Map group index to VMtype index.
+        required: true
+        status: SUPPORTED
+      vm_role:
+        type: string
+        description: Unique role for these VMs.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl0_port_0_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_cfed_1_int_ctrl0_port_0_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl0_port_0_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      group_id:
+        type: string
+        description: ID number of the elastic group this pair is a member of.
+        required: true
+        status: SUPPORTED
+      install_config:
+        type: string
+        description: JSON formatted string of install config values.
+        required: true
+        status: SUPPORTED
+      cfed_volume_1:
+        type: json
+        description: CFED Volume.
+        required: true
+        status: SUPPORTED
+      group_tag:
+        type: string
+        description: Key into "usage_info" for members of this elastic group.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+    attributes:
+      VMB-EXT_IPS:
+        type: string
+        description: IP addresses assigned to the first external network.
+        status: SUPPORTED
+      Version:
+        type: string
+        description: |
+          Template file version number. This should be updated
+          each time a non-comment change is made to this file.
+        status: SUPPORTED
+    requirements:
+    - dependency_cfed_server_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_cfed_server_1:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_cfed_1_int_ctrl1_port_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_1_int_ctrl1_port_1:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_cfed_1_int_ctrl0_port_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_1_int_ctrl0_port_0:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_cfed_1_sig_port_2:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_1_sig_port_2:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      network.incoming.bytes_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.iops_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      instance_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      host_cfed_server_1:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_1_sig_port_2:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.latency_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.capacity_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_util_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      scalable_cfed_server_1:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.allocation_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_1_int_ctrl0_port_0:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_1_int_ctrl1_port_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_1_sig_port_2:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.read.bytes_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.usage_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_1_int_ctrl1_port_1:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      binding_cfed_1_int_ctrl0_port_0:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.device.read.requests_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.resident_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      vcpus_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_1_sig_port_2:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.latency_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_server_1:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.requests_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      endpoint_cfed_server_1:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      os_cfed_server_1:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_server_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.ephemeral.size_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.root.size_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.usage_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.allocation_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu.delta_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_1_int_ctrl1_port_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_1_int_ctrl0_port_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.usage_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.heat.nest_common:
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+    properties:
+      total_vm_pairs:
+        type: string
+        description: |
+          This string will evaluate to the number of PairGroups in the VNF.
+        required: true
+        status: SUPPORTED
+      ext_net_list:
+        type: list
+        description: List of applicable subnet tags.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      int_net_count:
+        type: float
+        description: Number of internal networks.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - valid_values:
+          - 1
+          - 2
+      ext_net_info:
+        type: json
+        description: |
+          Maps the network strings used in this HOT file
+           to network info for the target cloud.
+        required: true
+        status: SUPPORTED
+      vnf_name:
+        type: string
+        description: Unique name for this VNF instance.
+        required: true
+        status: SUPPORTED
+      int_net1_label:
+        type: json
+        description: |
+          Map the number of internal networks to an internal net1 label
+          or the empty string.
+        required: true
+        status: SUPPORTED
+    attributes:
+      NetInfoStr:
+        type: string
+        description: Per-subnet information in string format.
+        status: SUPPORTED
+      PrivateKey:
+        type: string
+        description: Private SSH key for pre-install intra-VM communication.
+        status: SUPPORTED
+      Version:
+        type: string
+        description: |
+          Template file version number. This should be updated
+          each time a non-comment change is made to this file.
+        status: SUPPORTED
+      PublicKey:
+        type: string
+        description: Public SSH key for pre-install intra-VM communication.
+        status: SUPPORTED
+      TotalPairCount:
+        type: string
+        description: |
+          This string will evaluate to the number of PairGroups in the VNF.
+        status: SUPPORTED
+      IntNetInfo:
+        type: string
+        description: Internal network attributes.
+        status: SUPPORTED
+      OpenSec:
+        type: string
+        description: Open security group.
+        status: SUPPORTED
+    requirements:
+    - dependency_Shared_Sec_Grp:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - port_Shared_Sec_Grp:
+        capability: tosca.capabilities.Attachment
+        node: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+        relationship: org.openecomp.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_int_ctrl0_network:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_int_ctrl1_network:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    capabilities:
+      feature_int_ctrl0_network:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_int_ctrl0_network:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      end_point_int_ctrl0_network:
+        type: tosca.capabilities.Endpoint
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_int_ctrl1_network:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      end_point_int_ctrl1_network:
+        type: tosca.capabilities.Endpoint
+        occurrences:
+        - 1
+        - UNBOUNDED
+      link_int_ctrl1_network:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_Shared_Sec_Grp:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_int_ctrl1_network:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      link_int_ctrl0_network:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 1
         - UNBOUNDED
\ No newline at end of file
index 35d7a89..c56497f 100644 (file)
@@ -935,4 +935,1994 @@ node_types:
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.heat.base_att_cfed_nested_volume:
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+    properties:
+      size:
+        type: float
+        description: Size of /storage in GB.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - in_range:
+          - 4
+          - null
+      vnf_name:
+        type: string
+        description: Unique name for this VNF instance.
+        required: true
+        status: SUPPORTED
+      index:
+        type: float
+        description: number of volumes to spin up
+        required: true
+        status: SUPPORTED
+      OS::stack_name:
+        type: string
+        required: false
+        status: SUPPORTED
+    attributes:
+      cfed_volume_0:
+        type: string
+        description: CFED Volume UUID
+        status: SUPPORTED
+      cfed_volume_1:
+        type: string
+        description: CFED Volume UUID
+        status: SUPPORTED
+    requirements:
+    - dependency_cfed_volume_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_cfed_volume_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    capabilities:
+      feature_cfed_volume_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_volume_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_volume_0:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_volume_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.heat.cfed_1:
+    derived_from: org.openecomp.resource.abstract.nodes.VFC
+    properties:
+      cfed_flavor_name:
+        type: string
+        description: VM flavor name.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      usage_info:
+        type: json
+        description: |
+          Per-VM/vNIC data for members of this elastic group.
+        required: true
+        status: SUPPORTED
+      config_info:
+        type: json
+        description: Service configuration and network layout.
+        required: true
+        status: SUPPORTED
+      group_index:
+        type: float
+        description: Index of the VM pair within the elastic group.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - in_range:
+          - 0
+          - null
+      sig_subnet_id:
+        type: string
+        description: UUID of the subnet.
+        required: true
+        status: SUPPORTED
+      workload_context:
+        type: string
+        description: Workload context for this VNF.
+        required: true
+        status: SUPPORTED
+      ssh_private_key:
+        type: string
+        description: Private SSH key for VM to VM communication in this system.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_cfed_0_int_ctrl0_port_0_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_cfed_0_sig_port_2_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      int_ctrl1_Sec_Grp:
+        type: string
+        description: Internal network 0 security group UUID.
+        required: true
+        status: SUPPORTED
+      current_group_count:
+        type: string
+        description: |
+          Current VM pair count within the elastic group.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      total_pair_count:
+        type: string
+        description: |
+          This string will evaluate to the number of PairGroups in the VNF.
+        required: true
+        status: SUPPORTED
+      cfed_sig_ipmap_sideA_0_float_published:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cfed_0_sig_port_2_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      int_ctrl1_net_id:
+        type: string
+        description: Internal network 1.
+        required: true
+        status: SUPPORTED
+      cfed_sigv6_ipmap_sideA_0_fixed_dbaas:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      cfed_image_name:
+        type: string
+        description: VM image name.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      cfed_sigv6_ipmap_sideA_0_float_published:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      cfed_sig_ipmap_sideA_0_fixed_dbaas:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cfed_0_int_ctrl0_port_0_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      ssh_public_key:
+        type: string
+        description: Public SSH key for VM to VM communication in this system.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_cfed_0_int_ctrl1_port_1_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      sig_net_id:
+        type: string
+        description: UUID of the network.
+        required: true
+        status: SUPPORTED
+      sigv6_v6_subnet_id:
+        type: string
+        description: UUID of the subnet.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      vf_module_index:
+        type: float
+        description: Unique index for this VNF Module instance.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      backup_file1:
+        type: string
+        description: |
+          <cURL path>/<backup file>
+          This is only used for restore (aka "disaster recovery") and
+          only referenced on OAM-A.
+        required: true
+        status: SUPPORTED
+      vf_module_id:
+        type: string
+        description: Unique ID for this VNF module instance.
+        required: true
+        status: SUPPORTED
+      backup_file2:
+        type: string
+        description: |
+          <cURL path>/<backup file>
+          This is only used for restore (aka "disaster recovery") and
+          only referenced on OAM-A.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      cfed_names:
+        type: list
+        description: VM name list.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      role:
+        type: string
+        description: VM role during LCM activities.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - valid_values:
+          - oam
+          - other
+      port_cfed_0_int_ctrl1_port_1_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      vnf_name:
+        type: string
+        description: Unique name for this VNF instance.
+        required: true
+        status: SUPPORTED
+      vf_module_name:
+        type: string
+        description: Unique name for this VNF module instance.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      vnf_id:
+        type: string
+        description: Unique ID for this VNF instance.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      lcm_keypair:
+        type: string
+        description: Lifecycle management access key pair.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      availability_zone_0:
+        type: string
+        description: VM availability zone.
+        required: true
+        status: SUPPORTED
+      sig_Sec_Grp:
+        type: string
+        description: UUID of the security group.
+        required: true
+        status: SUPPORTED
+      int_ctrl0_Sec_Grp:
+        type: string
+        description: Internal network 0 security group UUID.
+        required: true
+        status: SUPPORTED
+      net_info_str:
+        type: string
+        description: |
+          JSON formatted string with all network info.
+          This is redundant with int_net_info and ext_net_info except
+          in Kilo there is no way to convert json to string for
+          output as a personality file.
+        required: true
+        status: SUPPORTED
+      ssh_access_key:
+        type: string
+        description: Public SSH key for external access.
+        required: true
+        status: SUPPORTED
+      int_ctrl0_net_id:
+        type: string
+        description: Internal network 0.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      environment_context:
+        type: string
+        description: Environment context for this VNF.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      pair2idx:
+        type: json
+        description: Map group index to VMtype index.
+        required: true
+        status: SUPPORTED
+      vm_role:
+        type: string
+        description: Unique role for these VMs.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      group_id:
+        type: string
+        description: ID number of the elastic group this pair is a member of.
+        required: true
+        status: SUPPORTED
+      install_config:
+        type: string
+        description: JSON formatted string of install config values.
+        required: true
+        status: SUPPORTED
+      cfed_volume_0:
+        type: json
+        description: CFED Volume.
+        required: true
+        status: SUPPORTED
+      group_tag:
+        type: string
+        description: Key into "usage_info" for members of this elastic group.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+    attributes:
+      Version:
+        type: string
+        description: |
+          Template file version number. This should be updated
+          each time a non-comment change is made to this file.
+        status: SUPPORTED
+      VMA-EXT_IPS:
+        type: string
+        description: IP addresses assigned to the first external network.
+        status: SUPPORTED
+    requirements:
+    - dependency_cfed_0_sig_port_2:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_0_sig_port_2:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_cfed_0_int_ctrl0_port_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_0_int_ctrl0_port_0:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_cfed_server_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_cfed_server_0:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_cfed_0_int_ctrl1_port_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_0_int_ctrl1_port_1:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      memory_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.iops_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_0_int_ctrl0_port_0:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_0_int_ctrl1_port_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_0_sig_port_2:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      host_cfed_server_0:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      instance_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_util_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_0_sig_port_2:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.capacity_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_0_int_ctrl0_port_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.allocation_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      scalable_cfed_server_0:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_0_int_ctrl0_port_0:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.device.read.requests_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_0_int_ctrl1_port_1:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.usage_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_0_sig_port_2:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_server_0:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.resident_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      vcpus_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.latency_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.requests_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.latency_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      os_cfed_server_0:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_server_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.ephemeral.size_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.root.size_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_0_int_ctrl1_port_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      endpoint_cfed_server_0:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.usage_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.allocation_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu.delta_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.usage_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.heat.cfed:
+    derived_from: org.openecomp.resource.abstract.nodes.VFC
+    properties:
+      cfed_flavor_name:
+        type: string
+        description: VM flavor name.
+        required: true
+        status: SUPPORTED
+      cfed_sigv6_ipmap_sideB_0_fixed_dbaas:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cfed_1_int_ctrl0_port_0_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      cfed_sig_ipmap_sideB_0_fixed_dbaas:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cfed_1_sig_port_2_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      usage_info:
+        type: json
+        description: |
+          Per-VM/vNIC data for members of this elastic group.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      config_info:
+        type: json
+        description: Service configuration and network layout.
+        required: true
+        status: SUPPORTED
+      group_index:
+        type: float
+        description: Index of the VM pair within the elastic group.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - in_range:
+          - 0
+          - null
+      sig_subnet_id:
+        type: string
+        description: UUID of the subnet.
+        required: true
+        status: SUPPORTED
+      workload_context:
+        type: string
+        description: Workload context for this VNF.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      ssh_private_key:
+        type: string
+        description: Private SSH key for VM to VM communication in this system.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_cfed_1_int_ctrl0_port_0_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      int_ctrl1_Sec_Grp:
+        type: string
+        description: Internal network 0 security group UUID.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      current_group_count:
+        type: string
+        description: |
+          Current VM pair count within the elastic group.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl0_port_0_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      total_pair_count:
+        type: string
+        description: |
+          This string will evaluate to the number of PairGroups in the VNF.
+        required: true
+        status: SUPPORTED
+      int_ctrl1_net_id:
+        type: string
+        description: Internal network 1.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      cfed_image_name:
+        type: string
+        description: VM image name.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      ssh_public_key:
+        type: string
+        description: Public SSH key for VM to VM communication in this system.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      port_cfed_1_int_ctrl0_port_0_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_cfed_1_sig_port_2_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      sig_net_id:
+        type: string
+        description: UUID of the network.
+        required: true
+        status: SUPPORTED
+      sigv6_v6_subnet_id:
+        type: string
+        description: UUID of the subnet.
+        required: true
+        status: SUPPORTED
+      vf_module_index:
+        type: float
+        description: Unique index for this VNF Module instance.
+        required: true
+        status: SUPPORTED
+      backup_file1:
+        type: string
+        description: |
+          <cURL path>/<backup file>
+          This is only used for restore (aka "disaster recovery") and
+          only referenced on OAM-A.
+        required: true
+        status: SUPPORTED
+      vf_module_id:
+        type: string
+        description: Unique ID for this VNF module instance.
+        required: true
+        status: SUPPORTED
+      backup_file2:
+        type: string
+        description: |
+          <cURL path>/<backup file>
+          This is only used for restore (aka "disaster recovery") and
+          only referenced on OAM-A.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      cfed_names:
+        type: list
+        description: VM name list.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      role:
+        type: string
+        description: VM role during LCM activities.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - valid_values:
+          - oam
+          - other
+      vnf_name:
+        type: string
+        description: Unique name for this VNF instance.
+        required: true
+        status: SUPPORTED
+      vf_module_name:
+        type: string
+        description: Unique name for this VNF module instance.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl0_port_0_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      port_cfed_1_int_ctrl1_port_1_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      vnf_id:
+        type: string
+        description: Unique ID for this VNF instance.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      lcm_keypair:
+        type: string
+        description: Lifecycle management access key pair.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      availability_zone_1:
+        type: string
+        description: VM availability zone.
+        required: true
+        status: SUPPORTED
+      sig_Sec_Grp:
+        type: string
+        description: UUID of the security group.
+        required: true
+        status: SUPPORTED
+      int_ctrl0_Sec_Grp:
+        type: string
+        description: Internal network 0 security group UUID.
+        required: true
+        status: SUPPORTED
+      net_info_str:
+        type: string
+        description: |
+          JSON formatted string with all network info.
+          This is redundant with int_net_info and ext_net_info except
+          in Kilo there is no way to convert json to string for
+          output as a personality file.
+        required: true
+        status: SUPPORTED
+      ssh_access_key:
+        type: string
+        description: Public SSH key for external access.
+        required: true
+        status: SUPPORTED
+      int_ctrl0_net_id:
+        type: string
+        description: Internal network 0.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      environment_context:
+        type: string
+        description: Environment context for this VNF.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl0_port_0_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      pair2idx:
+        type: json
+        description: Map group index to VMtype index.
+        required: true
+        status: SUPPORTED
+      vm_role:
+        type: string
+        description: Unique role for these VMs.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl0_port_0_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_cfed_1_int_ctrl0_port_0_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl0_port_0_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      group_id:
+        type: string
+        description: ID number of the elastic group this pair is a member of.
+        required: true
+        status: SUPPORTED
+      install_config:
+        type: string
+        description: JSON formatted string of install config values.
+        required: true
+        status: SUPPORTED
+      cfed_volume_1:
+        type: json
+        description: CFED Volume.
+        required: true
+        status: SUPPORTED
+      group_tag:
+        type: string
+        description: Key into "usage_info" for members of this elastic group.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+    attributes:
+      VMB-EXT_IPS:
+        type: string
+        description: IP addresses assigned to the first external network.
+        status: SUPPORTED
+      Version:
+        type: string
+        description: |
+          Template file version number. This should be updated
+          each time a non-comment change is made to this file.
+        status: SUPPORTED
+    requirements:
+    - dependency_cfed_server_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_cfed_server_1:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_cfed_1_int_ctrl1_port_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_1_int_ctrl1_port_1:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_cfed_1_int_ctrl0_port_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_1_int_ctrl0_port_0:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_cfed_1_sig_port_2:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_1_sig_port_2:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      network.incoming.bytes_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.iops_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      instance_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      host_cfed_server_1:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_1_sig_port_2:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.latency_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.capacity_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_util_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      scalable_cfed_server_1:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.allocation_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_1_int_ctrl0_port_0:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_1_int_ctrl1_port_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_1_sig_port_2:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.read.bytes_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.usage_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_1_int_ctrl1_port_1:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      binding_cfed_1_int_ctrl0_port_0:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.device.read.requests_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.resident_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      vcpus_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_1_sig_port_2:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.latency_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_server_1:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.requests_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      endpoint_cfed_server_1:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      os_cfed_server_1:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_server_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.ephemeral.size_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.root.size_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.usage_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.allocation_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu.delta_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_1_int_ctrl1_port_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_1_int_ctrl0_port_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.usage_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.heat.nest_common:
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+    properties:
+      total_vm_pairs:
+        type: string
+        description: |
+          This string will evaluate to the number of PairGroups in the VNF.
+        required: true
+        status: SUPPORTED
+      ext_net_list:
+        type: list
+        description: List of applicable subnet tags.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      int_net_count:
+        type: float
+        description: Number of internal networks.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - valid_values:
+          - 1
+          - 2
+      ext_net_info:
+        type: json
+        description: |
+          Maps the network strings used in this HOT file
+           to network info for the target cloud.
+        required: true
+        status: SUPPORTED
+      vnf_name:
+        type: string
+        description: Unique name for this VNF instance.
+        required: true
+        status: SUPPORTED
+      int_net1_label:
+        type: json
+        description: |
+          Map the number of internal networks to an internal net1 label
+          or the empty string.
+        required: true
+        status: SUPPORTED
+    attributes:
+      NetInfoStr:
+        type: string
+        description: Per-subnet information in string format.
+        status: SUPPORTED
+      PrivateKey:
+        type: string
+        description: Private SSH key for pre-install intra-VM communication.
+        status: SUPPORTED
+      Version:
+        type: string
+        description: |
+          Template file version number. This should be updated
+          each time a non-comment change is made to this file.
+        status: SUPPORTED
+      PublicKey:
+        type: string
+        description: Public SSH key for pre-install intra-VM communication.
+        status: SUPPORTED
+      TotalPairCount:
+        type: string
+        description: |
+          This string will evaluate to the number of PairGroups in the VNF.
+        status: SUPPORTED
+      IntNetInfo:
+        type: string
+        description: Internal network attributes.
+        status: SUPPORTED
+      OpenSec:
+        type: string
+        description: Open security group.
+        status: SUPPORTED
+    requirements:
+    - dependency_Shared_Sec_Grp:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - port_Shared_Sec_Grp:
+        capability: tosca.capabilities.Attachment
+        node: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+        relationship: org.openecomp.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_int_ctrl0_network:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_int_ctrl1_network:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    capabilities:
+      feature_int_ctrl0_network:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_int_ctrl0_network:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      end_point_int_ctrl0_network:
+        type: tosca.capabilities.Endpoint
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_int_ctrl1_network:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      end_point_int_ctrl1_network:
+        type: tosca.capabilities.Endpoint
+        occurrences:
+        - 1
+        - UNBOUNDED
+      link_int_ctrl1_network:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_Shared_Sec_Grp:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_int_ctrl1_network:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      link_int_ctrl0_network:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 1
         - UNBOUNDED
\ No newline at end of file
index 35d7a89..c56497f 100644 (file)
@@ -935,4 +935,1994 @@ node_types:
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.heat.base_att_cfed_nested_volume:
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+    properties:
+      size:
+        type: float
+        description: Size of /storage in GB.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - in_range:
+          - 4
+          - null
+      vnf_name:
+        type: string
+        description: Unique name for this VNF instance.
+        required: true
+        status: SUPPORTED
+      index:
+        type: float
+        description: number of volumes to spin up
+        required: true
+        status: SUPPORTED
+      OS::stack_name:
+        type: string
+        required: false
+        status: SUPPORTED
+    attributes:
+      cfed_volume_0:
+        type: string
+        description: CFED Volume UUID
+        status: SUPPORTED
+      cfed_volume_1:
+        type: string
+        description: CFED Volume UUID
+        status: SUPPORTED
+    requirements:
+    - dependency_cfed_volume_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_cfed_volume_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    capabilities:
+      feature_cfed_volume_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_volume_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_volume_0:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_volume_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.heat.cfed_1:
+    derived_from: org.openecomp.resource.abstract.nodes.VFC
+    properties:
+      cfed_flavor_name:
+        type: string
+        description: VM flavor name.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      usage_info:
+        type: json
+        description: |
+          Per-VM/vNIC data for members of this elastic group.
+        required: true
+        status: SUPPORTED
+      config_info:
+        type: json
+        description: Service configuration and network layout.
+        required: true
+        status: SUPPORTED
+      group_index:
+        type: float
+        description: Index of the VM pair within the elastic group.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - in_range:
+          - 0
+          - null
+      sig_subnet_id:
+        type: string
+        description: UUID of the subnet.
+        required: true
+        status: SUPPORTED
+      workload_context:
+        type: string
+        description: Workload context for this VNF.
+        required: true
+        status: SUPPORTED
+      ssh_private_key:
+        type: string
+        description: Private SSH key for VM to VM communication in this system.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_cfed_0_int_ctrl0_port_0_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_cfed_0_sig_port_2_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      int_ctrl1_Sec_Grp:
+        type: string
+        description: Internal network 0 security group UUID.
+        required: true
+        status: SUPPORTED
+      current_group_count:
+        type: string
+        description: |
+          Current VM pair count within the elastic group.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      total_pair_count:
+        type: string
+        description: |
+          This string will evaluate to the number of PairGroups in the VNF.
+        required: true
+        status: SUPPORTED
+      cfed_sig_ipmap_sideA_0_float_published:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cfed_0_sig_port_2_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      int_ctrl1_net_id:
+        type: string
+        description: Internal network 1.
+        required: true
+        status: SUPPORTED
+      cfed_sigv6_ipmap_sideA_0_fixed_dbaas:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      cfed_image_name:
+        type: string
+        description: VM image name.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      cfed_sigv6_ipmap_sideA_0_float_published:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      cfed_sig_ipmap_sideA_0_fixed_dbaas:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cfed_0_int_ctrl0_port_0_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      ssh_public_key:
+        type: string
+        description: Public SSH key for VM to VM communication in this system.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_cfed_0_int_ctrl1_port_1_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      sig_net_id:
+        type: string
+        description: UUID of the network.
+        required: true
+        status: SUPPORTED
+      sigv6_v6_subnet_id:
+        type: string
+        description: UUID of the subnet.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      vf_module_index:
+        type: float
+        description: Unique index for this VNF Module instance.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      backup_file1:
+        type: string
+        description: |
+          <cURL path>/<backup file>
+          This is only used for restore (aka "disaster recovery") and
+          only referenced on OAM-A.
+        required: true
+        status: SUPPORTED
+      vf_module_id:
+        type: string
+        description: Unique ID for this VNF module instance.
+        required: true
+        status: SUPPORTED
+      backup_file2:
+        type: string
+        description: |
+          <cURL path>/<backup file>
+          This is only used for restore (aka "disaster recovery") and
+          only referenced on OAM-A.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      cfed_names:
+        type: list
+        description: VM name list.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      role:
+        type: string
+        description: VM role during LCM activities.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - valid_values:
+          - oam
+          - other
+      port_cfed_0_int_ctrl1_port_1_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      vnf_name:
+        type: string
+        description: Unique name for this VNF instance.
+        required: true
+        status: SUPPORTED
+      vf_module_name:
+        type: string
+        description: Unique name for this VNF module instance.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      vnf_id:
+        type: string
+        description: Unique ID for this VNF instance.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      lcm_keypair:
+        type: string
+        description: Lifecycle management access key pair.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      availability_zone_0:
+        type: string
+        description: VM availability zone.
+        required: true
+        status: SUPPORTED
+      sig_Sec_Grp:
+        type: string
+        description: UUID of the security group.
+        required: true
+        status: SUPPORTED
+      int_ctrl0_Sec_Grp:
+        type: string
+        description: Internal network 0 security group UUID.
+        required: true
+        status: SUPPORTED
+      net_info_str:
+        type: string
+        description: |
+          JSON formatted string with all network info.
+          This is redundant with int_net_info and ext_net_info except
+          in Kilo there is no way to convert json to string for
+          output as a personality file.
+        required: true
+        status: SUPPORTED
+      ssh_access_key:
+        type: string
+        description: Public SSH key for external access.
+        required: true
+        status: SUPPORTED
+      int_ctrl0_net_id:
+        type: string
+        description: Internal network 0.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      environment_context:
+        type: string
+        description: Environment context for this VNF.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      pair2idx:
+        type: json
+        description: Map group index to VMtype index.
+        required: true
+        status: SUPPORTED
+      vm_role:
+        type: string
+        description: Unique role for these VMs.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      group_id:
+        type: string
+        description: ID number of the elastic group this pair is a member of.
+        required: true
+        status: SUPPORTED
+      install_config:
+        type: string
+        description: JSON formatted string of install config values.
+        required: true
+        status: SUPPORTED
+      cfed_volume_0:
+        type: json
+        description: CFED Volume.
+        required: true
+        status: SUPPORTED
+      group_tag:
+        type: string
+        description: Key into "usage_info" for members of this elastic group.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+    attributes:
+      Version:
+        type: string
+        description: |
+          Template file version number. This should be updated
+          each time a non-comment change is made to this file.
+        status: SUPPORTED
+      VMA-EXT_IPS:
+        type: string
+        description: IP addresses assigned to the first external network.
+        status: SUPPORTED
+    requirements:
+    - dependency_cfed_0_sig_port_2:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_0_sig_port_2:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_cfed_0_int_ctrl0_port_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_0_int_ctrl0_port_0:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_cfed_server_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_cfed_server_0:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_cfed_0_int_ctrl1_port_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_0_int_ctrl1_port_1:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      memory_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.iops_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_0_int_ctrl0_port_0:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_0_int_ctrl1_port_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_0_sig_port_2:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      host_cfed_server_0:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      instance_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_util_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_0_sig_port_2:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.capacity_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_0_int_ctrl0_port_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.allocation_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      scalable_cfed_server_0:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_0_int_ctrl0_port_0:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.device.read.requests_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_0_int_ctrl1_port_1:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.usage_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_0_sig_port_2:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_server_0:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.resident_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      vcpus_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.latency_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.requests_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.latency_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      os_cfed_server_0:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_server_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.ephemeral.size_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.root.size_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_0_int_ctrl1_port_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      endpoint_cfed_server_0:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.usage_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.allocation_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu.delta_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.usage_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.heat.cfed:
+    derived_from: org.openecomp.resource.abstract.nodes.VFC
+    properties:
+      cfed_flavor_name:
+        type: string
+        description: VM flavor name.
+        required: true
+        status: SUPPORTED
+      cfed_sigv6_ipmap_sideB_0_fixed_dbaas:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cfed_1_int_ctrl0_port_0_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      cfed_sig_ipmap_sideB_0_fixed_dbaas:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cfed_1_sig_port_2_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      usage_info:
+        type: json
+        description: |
+          Per-VM/vNIC data for members of this elastic group.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      config_info:
+        type: json
+        description: Service configuration and network layout.
+        required: true
+        status: SUPPORTED
+      group_index:
+        type: float
+        description: Index of the VM pair within the elastic group.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - in_range:
+          - 0
+          - null
+      sig_subnet_id:
+        type: string
+        description: UUID of the subnet.
+        required: true
+        status: SUPPORTED
+      workload_context:
+        type: string
+        description: Workload context for this VNF.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      ssh_private_key:
+        type: string
+        description: Private SSH key for VM to VM communication in this system.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_cfed_1_int_ctrl0_port_0_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      int_ctrl1_Sec_Grp:
+        type: string
+        description: Internal network 0 security group UUID.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      current_group_count:
+        type: string
+        description: |
+          Current VM pair count within the elastic group.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl0_port_0_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      total_pair_count:
+        type: string
+        description: |
+          This string will evaluate to the number of PairGroups in the VNF.
+        required: true
+        status: SUPPORTED
+      int_ctrl1_net_id:
+        type: string
+        description: Internal network 1.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      cfed_image_name:
+        type: string
+        description: VM image name.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      ssh_public_key:
+        type: string
+        description: Public SSH key for VM to VM communication in this system.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      port_cfed_1_int_ctrl0_port_0_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_cfed_1_sig_port_2_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      sig_net_id:
+        type: string
+        description: UUID of the network.
+        required: true
+        status: SUPPORTED
+      sigv6_v6_subnet_id:
+        type: string
+        description: UUID of the subnet.
+        required: true
+        status: SUPPORTED
+      vf_module_index:
+        type: float
+        description: Unique index for this VNF Module instance.
+        required: true
+        status: SUPPORTED
+      backup_file1:
+        type: string
+        description: |
+          <cURL path>/<backup file>
+          This is only used for restore (aka "disaster recovery") and
+          only referenced on OAM-A.
+        required: true
+        status: SUPPORTED
+      vf_module_id:
+        type: string
+        description: Unique ID for this VNF module instance.
+        required: true
+        status: SUPPORTED
+      backup_file2:
+        type: string
+        description: |
+          <cURL path>/<backup file>
+          This is only used for restore (aka "disaster recovery") and
+          only referenced on OAM-A.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      cfed_names:
+        type: list
+        description: VM name list.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      role:
+        type: string
+        description: VM role during LCM activities.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - valid_values:
+          - oam
+          - other
+      vnf_name:
+        type: string
+        description: Unique name for this VNF instance.
+        required: true
+        status: SUPPORTED
+      vf_module_name:
+        type: string
+        description: Unique name for this VNF module instance.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl0_port_0_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      port_cfed_1_int_ctrl1_port_1_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      vnf_id:
+        type: string
+        description: Unique ID for this VNF instance.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      lcm_keypair:
+        type: string
+        description: Lifecycle management access key pair.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      availability_zone_1:
+        type: string
+        description: VM availability zone.
+        required: true
+        status: SUPPORTED
+      sig_Sec_Grp:
+        type: string
+        description: UUID of the security group.
+        required: true
+        status: SUPPORTED
+      int_ctrl0_Sec_Grp:
+        type: string
+        description: Internal network 0 security group UUID.
+        required: true
+        status: SUPPORTED
+      net_info_str:
+        type: string
+        description: |
+          JSON formatted string with all network info.
+          This is redundant with int_net_info and ext_net_info except
+          in Kilo there is no way to convert json to string for
+          output as a personality file.
+        required: true
+        status: SUPPORTED
+      ssh_access_key:
+        type: string
+        description: Public SSH key for external access.
+        required: true
+        status: SUPPORTED
+      int_ctrl0_net_id:
+        type: string
+        description: Internal network 0.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      environment_context:
+        type: string
+        description: Environment context for this VNF.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl0_port_0_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      pair2idx:
+        type: json
+        description: Map group index to VMtype index.
+        required: true
+        status: SUPPORTED
+      vm_role:
+        type: string
+        description: Unique role for these VMs.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl0_port_0_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_cfed_1_int_ctrl0_port_0_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl0_port_0_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      group_id:
+        type: string
+        description: ID number of the elastic group this pair is a member of.
+        required: true
+        status: SUPPORTED
+      install_config:
+        type: string
+        description: JSON formatted string of install config values.
+        required: true
+        status: SUPPORTED
+      cfed_volume_1:
+        type: json
+        description: CFED Volume.
+        required: true
+        status: SUPPORTED
+      group_tag:
+        type: string
+        description: Key into "usage_info" for members of this elastic group.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+    attributes:
+      VMB-EXT_IPS:
+        type: string
+        description: IP addresses assigned to the first external network.
+        status: SUPPORTED
+      Version:
+        type: string
+        description: |
+          Template file version number. This should be updated
+          each time a non-comment change is made to this file.
+        status: SUPPORTED
+    requirements:
+    - dependency_cfed_server_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_cfed_server_1:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_cfed_1_int_ctrl1_port_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_1_int_ctrl1_port_1:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_cfed_1_int_ctrl0_port_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_1_int_ctrl0_port_0:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_cfed_1_sig_port_2:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_1_sig_port_2:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      network.incoming.bytes_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.iops_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      instance_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      host_cfed_server_1:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_1_sig_port_2:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.latency_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.capacity_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_util_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      scalable_cfed_server_1:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.allocation_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_1_int_ctrl0_port_0:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_1_int_ctrl1_port_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_1_sig_port_2:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.read.bytes_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.usage_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_1_int_ctrl1_port_1:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      binding_cfed_1_int_ctrl0_port_0:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.device.read.requests_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.resident_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      vcpus_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_1_sig_port_2:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.latency_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_server_1:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.requests_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      endpoint_cfed_server_1:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      os_cfed_server_1:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_server_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.ephemeral.size_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.root.size_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.usage_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.allocation_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu.delta_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_1_int_ctrl1_port_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_1_int_ctrl0_port_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.usage_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.heat.nest_common:
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+    properties:
+      total_vm_pairs:
+        type: string
+        description: |
+          This string will evaluate to the number of PairGroups in the VNF.
+        required: true
+        status: SUPPORTED
+      ext_net_list:
+        type: list
+        description: List of applicable subnet tags.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      int_net_count:
+        type: float
+        description: Number of internal networks.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - valid_values:
+          - 1
+          - 2
+      ext_net_info:
+        type: json
+        description: |
+          Maps the network strings used in this HOT file
+           to network info for the target cloud.
+        required: true
+        status: SUPPORTED
+      vnf_name:
+        type: string
+        description: Unique name for this VNF instance.
+        required: true
+        status: SUPPORTED
+      int_net1_label:
+        type: json
+        description: |
+          Map the number of internal networks to an internal net1 label
+          or the empty string.
+        required: true
+        status: SUPPORTED
+    attributes:
+      NetInfoStr:
+        type: string
+        description: Per-subnet information in string format.
+        status: SUPPORTED
+      PrivateKey:
+        type: string
+        description: Private SSH key for pre-install intra-VM communication.
+        status: SUPPORTED
+      Version:
+        type: string
+        description: |
+          Template file version number. This should be updated
+          each time a non-comment change is made to this file.
+        status: SUPPORTED
+      PublicKey:
+        type: string
+        description: Public SSH key for pre-install intra-VM communication.
+        status: SUPPORTED
+      TotalPairCount:
+        type: string
+        description: |
+          This string will evaluate to the number of PairGroups in the VNF.
+        status: SUPPORTED
+      IntNetInfo:
+        type: string
+        description: Internal network attributes.
+        status: SUPPORTED
+      OpenSec:
+        type: string
+        description: Open security group.
+        status: SUPPORTED
+    requirements:
+    - dependency_Shared_Sec_Grp:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - port_Shared_Sec_Grp:
+        capability: tosca.capabilities.Attachment
+        node: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+        relationship: org.openecomp.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_int_ctrl0_network:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_int_ctrl1_network:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    capabilities:
+      feature_int_ctrl0_network:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_int_ctrl0_network:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      end_point_int_ctrl0_network:
+        type: tosca.capabilities.Endpoint
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_int_ctrl1_network:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      end_point_int_ctrl1_network:
+        type: tosca.capabilities.Endpoint
+        occurrences:
+        - 1
+        - UNBOUNDED
+      link_int_ctrl1_network:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_Shared_Sec_Grp:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_int_ctrl1_network:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      link_int_ctrl0_network:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 1
         - UNBOUNDED
\ No newline at end of file
index 35d7a89..c56497f 100644 (file)
@@ -935,4 +935,1994 @@ node_types:
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.heat.base_att_cfed_nested_volume:
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+    properties:
+      size:
+        type: float
+        description: Size of /storage in GB.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - in_range:
+          - 4
+          - null
+      vnf_name:
+        type: string
+        description: Unique name for this VNF instance.
+        required: true
+        status: SUPPORTED
+      index:
+        type: float
+        description: number of volumes to spin up
+        required: true
+        status: SUPPORTED
+      OS::stack_name:
+        type: string
+        required: false
+        status: SUPPORTED
+    attributes:
+      cfed_volume_0:
+        type: string
+        description: CFED Volume UUID
+        status: SUPPORTED
+      cfed_volume_1:
+        type: string
+        description: CFED Volume UUID
+        status: SUPPORTED
+    requirements:
+    - dependency_cfed_volume_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_cfed_volume_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    capabilities:
+      feature_cfed_volume_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_volume_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_volume_0:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_volume_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.heat.cfed_1:
+    derived_from: org.openecomp.resource.abstract.nodes.VFC
+    properties:
+      cfed_flavor_name:
+        type: string
+        description: VM flavor name.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      usage_info:
+        type: json
+        description: |
+          Per-VM/vNIC data for members of this elastic group.
+        required: true
+        status: SUPPORTED
+      config_info:
+        type: json
+        description: Service configuration and network layout.
+        required: true
+        status: SUPPORTED
+      group_index:
+        type: float
+        description: Index of the VM pair within the elastic group.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - in_range:
+          - 0
+          - null
+      sig_subnet_id:
+        type: string
+        description: UUID of the subnet.
+        required: true
+        status: SUPPORTED
+      workload_context:
+        type: string
+        description: Workload context for this VNF.
+        required: true
+        status: SUPPORTED
+      ssh_private_key:
+        type: string
+        description: Private SSH key for VM to VM communication in this system.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_cfed_0_int_ctrl0_port_0_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_cfed_0_sig_port_2_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      int_ctrl1_Sec_Grp:
+        type: string
+        description: Internal network 0 security group UUID.
+        required: true
+        status: SUPPORTED
+      current_group_count:
+        type: string
+        description: |
+          Current VM pair count within the elastic group.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      total_pair_count:
+        type: string
+        description: |
+          This string will evaluate to the number of PairGroups in the VNF.
+        required: true
+        status: SUPPORTED
+      cfed_sig_ipmap_sideA_0_float_published:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cfed_0_sig_port_2_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      int_ctrl1_net_id:
+        type: string
+        description: Internal network 1.
+        required: true
+        status: SUPPORTED
+      cfed_sigv6_ipmap_sideA_0_fixed_dbaas:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      cfed_image_name:
+        type: string
+        description: VM image name.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      cfed_sigv6_ipmap_sideA_0_float_published:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      cfed_sig_ipmap_sideA_0_fixed_dbaas:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cfed_0_int_ctrl0_port_0_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      ssh_public_key:
+        type: string
+        description: Public SSH key for VM to VM communication in this system.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_cfed_0_int_ctrl1_port_1_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      sig_net_id:
+        type: string
+        description: UUID of the network.
+        required: true
+        status: SUPPORTED
+      sigv6_v6_subnet_id:
+        type: string
+        description: UUID of the subnet.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      vf_module_index:
+        type: float
+        description: Unique index for this VNF Module instance.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      backup_file1:
+        type: string
+        description: |
+          <cURL path>/<backup file>
+          This is only used for restore (aka "disaster recovery") and
+          only referenced on OAM-A.
+        required: true
+        status: SUPPORTED
+      vf_module_id:
+        type: string
+        description: Unique ID for this VNF module instance.
+        required: true
+        status: SUPPORTED
+      backup_file2:
+        type: string
+        description: |
+          <cURL path>/<backup file>
+          This is only used for restore (aka "disaster recovery") and
+          only referenced on OAM-A.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      cfed_names:
+        type: list
+        description: VM name list.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      role:
+        type: string
+        description: VM role during LCM activities.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - valid_values:
+          - oam
+          - other
+      port_cfed_0_int_ctrl1_port_1_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      vnf_name:
+        type: string
+        description: Unique name for this VNF instance.
+        required: true
+        status: SUPPORTED
+      vf_module_name:
+        type: string
+        description: Unique name for this VNF module instance.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      vnf_id:
+        type: string
+        description: Unique ID for this VNF instance.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      lcm_keypair:
+        type: string
+        description: Lifecycle management access key pair.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      availability_zone_0:
+        type: string
+        description: VM availability zone.
+        required: true
+        status: SUPPORTED
+      sig_Sec_Grp:
+        type: string
+        description: UUID of the security group.
+        required: true
+        status: SUPPORTED
+      int_ctrl0_Sec_Grp:
+        type: string
+        description: Internal network 0 security group UUID.
+        required: true
+        status: SUPPORTED
+      net_info_str:
+        type: string
+        description: |
+          JSON formatted string with all network info.
+          This is redundant with int_net_info and ext_net_info except
+          in Kilo there is no way to convert json to string for
+          output as a personality file.
+        required: true
+        status: SUPPORTED
+      ssh_access_key:
+        type: string
+        description: Public SSH key for external access.
+        required: true
+        status: SUPPORTED
+      int_ctrl0_net_id:
+        type: string
+        description: Internal network 0.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      environment_context:
+        type: string
+        description: Environment context for this VNF.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      pair2idx:
+        type: json
+        description: Map group index to VMtype index.
+        required: true
+        status: SUPPORTED
+      vm_role:
+        type: string
+        description: Unique role for these VMs.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      group_id:
+        type: string
+        description: ID number of the elastic group this pair is a member of.
+        required: true
+        status: SUPPORTED
+      install_config:
+        type: string
+        description: JSON formatted string of install config values.
+        required: true
+        status: SUPPORTED
+      cfed_volume_0:
+        type: json
+        description: CFED Volume.
+        required: true
+        status: SUPPORTED
+      group_tag:
+        type: string
+        description: Key into "usage_info" for members of this elastic group.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+    attributes:
+      Version:
+        type: string
+        description: |
+          Template file version number. This should be updated
+          each time a non-comment change is made to this file.
+        status: SUPPORTED
+      VMA-EXT_IPS:
+        type: string
+        description: IP addresses assigned to the first external network.
+        status: SUPPORTED
+    requirements:
+    - dependency_cfed_0_sig_port_2:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_0_sig_port_2:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_cfed_0_int_ctrl0_port_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_0_int_ctrl0_port_0:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_cfed_server_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_cfed_server_0:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_cfed_0_int_ctrl1_port_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_0_int_ctrl1_port_1:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      memory_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.iops_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_0_int_ctrl0_port_0:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_0_int_ctrl1_port_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_0_sig_port_2:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      host_cfed_server_0:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      instance_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_util_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_0_sig_port_2:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.capacity_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_0_int_ctrl0_port_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.allocation_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      scalable_cfed_server_0:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_0_int_ctrl0_port_0:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.device.read.requests_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_0_int_ctrl1_port_1:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.usage_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_0_sig_port_2:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_server_0:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.resident_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      vcpus_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.latency_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.requests_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.latency_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      os_cfed_server_0:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_server_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.ephemeral.size_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.root.size_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_0_int_ctrl1_port_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      endpoint_cfed_server_0:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.usage_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.allocation_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu.delta_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.usage_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.heat.cfed:
+    derived_from: org.openecomp.resource.abstract.nodes.VFC
+    properties:
+      cfed_flavor_name:
+        type: string
+        description: VM flavor name.
+        required: true
+        status: SUPPORTED
+      cfed_sigv6_ipmap_sideB_0_fixed_dbaas:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cfed_1_int_ctrl0_port_0_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      cfed_sig_ipmap_sideB_0_fixed_dbaas:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cfed_1_sig_port_2_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      usage_info:
+        type: json
+        description: |
+          Per-VM/vNIC data for members of this elastic group.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      config_info:
+        type: json
+        description: Service configuration and network layout.
+        required: true
+        status: SUPPORTED
+      group_index:
+        type: float
+        description: Index of the VM pair within the elastic group.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - in_range:
+          - 0
+          - null
+      sig_subnet_id:
+        type: string
+        description: UUID of the subnet.
+        required: true
+        status: SUPPORTED
+      workload_context:
+        type: string
+        description: Workload context for this VNF.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      ssh_private_key:
+        type: string
+        description: Private SSH key for VM to VM communication in this system.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_cfed_1_int_ctrl0_port_0_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      int_ctrl1_Sec_Grp:
+        type: string
+        description: Internal network 0 security group UUID.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      current_group_count:
+        type: string
+        description: |
+          Current VM pair count within the elastic group.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl0_port_0_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      total_pair_count:
+        type: string
+        description: |
+          This string will evaluate to the number of PairGroups in the VNF.
+        required: true
+        status: SUPPORTED
+      int_ctrl1_net_id:
+        type: string
+        description: Internal network 1.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      cfed_image_name:
+        type: string
+        description: VM image name.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      ssh_public_key:
+        type: string
+        description: Public SSH key for VM to VM communication in this system.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      port_cfed_1_int_ctrl0_port_0_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_cfed_1_sig_port_2_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      sig_net_id:
+        type: string
+        description: UUID of the network.
+        required: true
+        status: SUPPORTED
+      sigv6_v6_subnet_id:
+        type: string
+        description: UUID of the subnet.
+        required: true
+        status: SUPPORTED
+      vf_module_index:
+        type: float
+        description: Unique index for this VNF Module instance.
+        required: true
+        status: SUPPORTED
+      backup_file1:
+        type: string
+        description: |
+          <cURL path>/<backup file>
+          This is only used for restore (aka "disaster recovery") and
+          only referenced on OAM-A.
+        required: true
+        status: SUPPORTED
+      vf_module_id:
+        type: string
+        description: Unique ID for this VNF module instance.
+        required: true
+        status: SUPPORTED
+      backup_file2:
+        type: string
+        description: |
+          <cURL path>/<backup file>
+          This is only used for restore (aka "disaster recovery") and
+          only referenced on OAM-A.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      cfed_names:
+        type: list
+        description: VM name list.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      role:
+        type: string
+        description: VM role during LCM activities.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - valid_values:
+          - oam
+          - other
+      vnf_name:
+        type: string
+        description: Unique name for this VNF instance.
+        required: true
+        status: SUPPORTED
+      vf_module_name:
+        type: string
+        description: Unique name for this VNF module instance.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl0_port_0_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      port_cfed_1_int_ctrl1_port_1_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      vnf_id:
+        type: string
+        description: Unique ID for this VNF instance.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      lcm_keypair:
+        type: string
+        description: Lifecycle management access key pair.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      availability_zone_1:
+        type: string
+        description: VM availability zone.
+        required: true
+        status: SUPPORTED
+      sig_Sec_Grp:
+        type: string
+        description: UUID of the security group.
+        required: true
+        status: SUPPORTED
+      int_ctrl0_Sec_Grp:
+        type: string
+        description: Internal network 0 security group UUID.
+        required: true
+        status: SUPPORTED
+      net_info_str:
+        type: string
+        description: |
+          JSON formatted string with all network info.
+          This is redundant with int_net_info and ext_net_info except
+          in Kilo there is no way to convert json to string for
+          output as a personality file.
+        required: true
+        status: SUPPORTED
+      ssh_access_key:
+        type: string
+        description: Public SSH key for external access.
+        required: true
+        status: SUPPORTED
+      int_ctrl0_net_id:
+        type: string
+        description: Internal network 0.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      environment_context:
+        type: string
+        description: Environment context for this VNF.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl0_port_0_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      pair2idx:
+        type: json
+        description: Map group index to VMtype index.
+        required: true
+        status: SUPPORTED
+      vm_role:
+        type: string
+        description: Unique role for these VMs.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl0_port_0_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_cfed_1_int_ctrl0_port_0_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl0_port_0_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      group_id:
+        type: string
+        description: ID number of the elastic group this pair is a member of.
+        required: true
+        status: SUPPORTED
+      install_config:
+        type: string
+        description: JSON formatted string of install config values.
+        required: true
+        status: SUPPORTED
+      cfed_volume_1:
+        type: json
+        description: CFED Volume.
+        required: true
+        status: SUPPORTED
+      group_tag:
+        type: string
+        description: Key into "usage_info" for members of this elastic group.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+    attributes:
+      VMB-EXT_IPS:
+        type: string
+        description: IP addresses assigned to the first external network.
+        status: SUPPORTED
+      Version:
+        type: string
+        description: |
+          Template file version number. This should be updated
+          each time a non-comment change is made to this file.
+        status: SUPPORTED
+    requirements:
+    - dependency_cfed_server_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_cfed_server_1:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_cfed_1_int_ctrl1_port_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_1_int_ctrl1_port_1:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_cfed_1_int_ctrl0_port_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_1_int_ctrl0_port_0:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_cfed_1_sig_port_2:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_1_sig_port_2:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      network.incoming.bytes_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.iops_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      instance_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      host_cfed_server_1:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_1_sig_port_2:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.latency_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.capacity_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_util_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      scalable_cfed_server_1:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.allocation_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_1_int_ctrl0_port_0:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_1_int_ctrl1_port_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_1_sig_port_2:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.read.bytes_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.usage_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_1_int_ctrl1_port_1:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      binding_cfed_1_int_ctrl0_port_0:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.device.read.requests_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.resident_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      vcpus_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_1_sig_port_2:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.latency_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_server_1:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.requests_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      endpoint_cfed_server_1:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      os_cfed_server_1:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_server_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.ephemeral.size_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.root.size_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.usage_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.allocation_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu.delta_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_1_int_ctrl1_port_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_1_int_ctrl0_port_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.usage_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.heat.nest_common:
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+    properties:
+      total_vm_pairs:
+        type: string
+        description: |
+          This string will evaluate to the number of PairGroups in the VNF.
+        required: true
+        status: SUPPORTED
+      ext_net_list:
+        type: list
+        description: List of applicable subnet tags.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      int_net_count:
+        type: float
+        description: Number of internal networks.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - valid_values:
+          - 1
+          - 2
+      ext_net_info:
+        type: json
+        description: |
+          Maps the network strings used in this HOT file
+           to network info for the target cloud.
+        required: true
+        status: SUPPORTED
+      vnf_name:
+        type: string
+        description: Unique name for this VNF instance.
+        required: true
+        status: SUPPORTED
+      int_net1_label:
+        type: json
+        description: |
+          Map the number of internal networks to an internal net1 label
+          or the empty string.
+        required: true
+        status: SUPPORTED
+    attributes:
+      NetInfoStr:
+        type: string
+        description: Per-subnet information in string format.
+        status: SUPPORTED
+      PrivateKey:
+        type: string
+        description: Private SSH key for pre-install intra-VM communication.
+        status: SUPPORTED
+      Version:
+        type: string
+        description: |
+          Template file version number. This should be updated
+          each time a non-comment change is made to this file.
+        status: SUPPORTED
+      PublicKey:
+        type: string
+        description: Public SSH key for pre-install intra-VM communication.
+        status: SUPPORTED
+      TotalPairCount:
+        type: string
+        description: |
+          This string will evaluate to the number of PairGroups in the VNF.
+        status: SUPPORTED
+      IntNetInfo:
+        type: string
+        description: Internal network attributes.
+        status: SUPPORTED
+      OpenSec:
+        type: string
+        description: Open security group.
+        status: SUPPORTED
+    requirements:
+    - dependency_Shared_Sec_Grp:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - port_Shared_Sec_Grp:
+        capability: tosca.capabilities.Attachment
+        node: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+        relationship: org.openecomp.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_int_ctrl0_network:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_int_ctrl1_network:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    capabilities:
+      feature_int_ctrl0_network:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_int_ctrl0_network:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      end_point_int_ctrl0_network:
+        type: tosca.capabilities.Endpoint
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_int_ctrl1_network:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      end_point_int_ctrl1_network:
+        type: tosca.capabilities.Endpoint
+        occurrences:
+        - 1
+        - UNBOUNDED
+      link_int_ctrl1_network:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_Shared_Sec_Grp:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_int_ctrl1_network:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      link_int_ctrl0_network:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 1
         - UNBOUNDED
\ No newline at end of file
index 35d7a89..1da2564 100644 (file)
@@ -935,4 +935,1994 @@ node_types:
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
-        - UNBOUNDED
\ No newline at end of file
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.heat.base_att_cfed_nested_volume:
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+    properties:
+      size:
+        type: float
+        description: Size of /storage in GB.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - in_range:
+          - 4
+          - null
+      vnf_name:
+        type: string
+        description: Unique name for this VNF instance.
+        required: true
+        status: SUPPORTED
+      index:
+        type: float
+        description: number of volumes to spin up
+        required: true
+        status: SUPPORTED
+      OS::stack_name:
+        type: string
+        required: false
+        status: SUPPORTED
+    attributes:
+      cfed_volume_0:
+        type: string
+        description: CFED Volume UUID
+        status: SUPPORTED
+      cfed_volume_1:
+        type: string
+        description: CFED Volume UUID
+        status: SUPPORTED
+    requirements:
+    - dependency_cfed_volume_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_cfed_volume_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    capabilities:
+      feature_cfed_volume_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_volume_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_volume_0:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_volume_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.heat.cfed_1:
+    derived_from: org.openecomp.resource.abstract.nodes.VFC
+    properties:
+      cfed_flavor_name:
+        type: string
+        description: VM flavor name.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      usage_info:
+        type: json
+        description: |
+          Per-VM/vNIC data for members of this elastic group.
+        required: true
+        status: SUPPORTED
+      config_info:
+        type: json
+        description: Service configuration and network layout.
+        required: true
+        status: SUPPORTED
+      group_index:
+        type: float
+        description: Index of the VM pair within the elastic group.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - in_range:
+          - 0
+          - null
+      sig_subnet_id:
+        type: string
+        description: UUID of the subnet.
+        required: true
+        status: SUPPORTED
+      workload_context:
+        type: string
+        description: Workload context for this VNF.
+        required: true
+        status: SUPPORTED
+      ssh_private_key:
+        type: string
+        description: Private SSH key for VM to VM communication in this system.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_cfed_0_int_ctrl0_port_0_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_cfed_0_sig_port_2_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      int_ctrl1_Sec_Grp:
+        type: string
+        description: Internal network 0 security group UUID.
+        required: true
+        status: SUPPORTED
+      current_group_count:
+        type: string
+        description: |
+          Current VM pair count within the elastic group.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      total_pair_count:
+        type: string
+        description: |
+          This string will evaluate to the number of PairGroups in the VNF.
+        required: true
+        status: SUPPORTED
+      cfed_sig_ipmap_sideA_0_float_published:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cfed_0_sig_port_2_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      int_ctrl1_net_id:
+        type: string
+        description: Internal network 1.
+        required: true
+        status: SUPPORTED
+      cfed_sigv6_ipmap_sideA_0_fixed_dbaas:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      cfed_image_name:
+        type: string
+        description: VM image name.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      cfed_sigv6_ipmap_sideA_0_float_published:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      cfed_sig_ipmap_sideA_0_fixed_dbaas:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cfed_0_int_ctrl0_port_0_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      ssh_public_key:
+        type: string
+        description: Public SSH key for VM to VM communication in this system.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_cfed_0_int_ctrl1_port_1_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      sig_net_id:
+        type: string
+        description: UUID of the network.
+        required: true
+        status: SUPPORTED
+      sigv6_v6_subnet_id:
+        type: string
+        description: UUID of the subnet.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      vf_module_index:
+        type: float
+        description: Unique index for this VNF Module instance.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      backup_file1:
+        type: string
+        description: |
+          <cURL path>/<backup file>
+          This is only used for restore (aka "disaster recovery") and
+          only referenced on OAM-A.
+        required: true
+        status: SUPPORTED
+      vf_module_id:
+        type: string
+        description: Unique ID for this VNF module instance.
+        required: true
+        status: SUPPORTED
+      backup_file2:
+        type: string
+        description: |
+          <cURL path>/<backup file>
+          This is only used for restore (aka "disaster recovery") and
+          only referenced on OAM-A.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      cfed_names:
+        type: list
+        description: VM name list.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      role:
+        type: string
+        description: VM role during LCM activities.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - valid_values:
+          - oam
+          - other
+      port_cfed_0_int_ctrl1_port_1_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      vnf_name:
+        type: string
+        description: Unique name for this VNF instance.
+        required: true
+        status: SUPPORTED
+      vf_module_name:
+        type: string
+        description: Unique name for this VNF module instance.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      vnf_id:
+        type: string
+        description: Unique ID for this VNF instance.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      lcm_keypair:
+        type: string
+        description: Lifecycle management access key pair.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      availability_zone_0:
+        type: string
+        description: VM availability zone.
+        required: true
+        status: SUPPORTED
+      sig_Sec_Grp:
+        type: string
+        description: UUID of the security group.
+        required: true
+        status: SUPPORTED
+      int_ctrl0_Sec_Grp:
+        type: string
+        description: Internal network 0 security group UUID.
+        required: true
+        status: SUPPORTED
+      net_info_str:
+        type: string
+        description: |
+          JSON formatted string with all network info.
+          This is redundant with int_net_info and ext_net_info except
+          in Kilo there is no way to convert json to string for
+          output as a personality file.
+        required: true
+        status: SUPPORTED
+      ssh_access_key:
+        type: string
+        description: Public SSH key for external access.
+        required: true
+        status: SUPPORTED
+      int_ctrl0_net_id:
+        type: string
+        description: Internal network 0.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      environment_context:
+        type: string
+        description: Environment context for this VNF.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl0_port_0_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      pair2idx:
+        type: json
+        description: Map group index to VMtype index.
+        required: true
+        status: SUPPORTED
+      vm_role:
+        type: string
+        description: Unique role for these VMs.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      group_id:
+        type: string
+        description: ID number of the elastic group this pair is a member of.
+        required: true
+        status: SUPPORTED
+      install_config:
+        type: string
+        description: JSON formatted string of install config values.
+        required: true
+        status: SUPPORTED
+      cfed_volume_0:
+        type: json
+        description: CFED Volume.
+        required: true
+        status: SUPPORTED
+      group_tag:
+        type: string
+        description: Key into "usage_info" for members of this elastic group.
+        required: true
+        status: SUPPORTED
+      port_cfed_0_sig_port_2_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_0_int_ctrl1_port_1_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+    attributes:
+      Version:
+        type: string
+        description: |
+          Template file version number. This should be updated
+          each time a non-comment change is made to this file.
+        status: SUPPORTED
+      VMA-EXT_IPS:
+        type: string
+        description: IP addresses assigned to the first external network.
+        status: SUPPORTED
+    requirements:
+    - dependency_cfed_0_sig_port_2:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_0_sig_port_2:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_cfed_0_int_ctrl0_port_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_0_int_ctrl0_port_0:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_cfed_server_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_cfed_server_0:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_cfed_0_int_ctrl1_port_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_0_int_ctrl1_port_1:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      memory_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.iops_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_0_int_ctrl0_port_0:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_0_int_ctrl1_port_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_0_sig_port_2:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      host_cfed_server_0:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      instance_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_util_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_0_sig_port_2:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.capacity_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_0_int_ctrl0_port_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.allocation_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      scalable_cfed_server_0:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_0_int_ctrl0_port_0:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.device.read.requests_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_0_int_ctrl1_port_1:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.usage_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_0_sig_port_2:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_server_0:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.resident_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_0_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      vcpus_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.latency_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.requests_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.latency_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      os_cfed_server_0:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_server_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.ephemeral.size_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.root.size_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_0_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_0_int_ctrl1_port_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      endpoint_cfed_server_0:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_0_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.usage_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.allocation_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu.delta_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes.rate_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.usage_cfed_server_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.heat.cfed:
+    derived_from: org.openecomp.resource.abstract.nodes.VFC
+    properties:
+      cfed_flavor_name:
+        type: string
+        description: VM flavor name.
+        required: true
+        status: SUPPORTED
+      cfed_sigv6_ipmap_sideB_0_fixed_dbaas:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cfed_1_int_ctrl0_port_0_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      cfed_sig_ipmap_sideB_0_fixed_dbaas:
+        type: list
+        description: VM/subnet/usage IP address list. Keyed by group index.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cfed_1_sig_port_2_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      usage_info:
+        type: json
+        description: |
+          Per-VM/vNIC data for members of this elastic group.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      config_info:
+        type: json
+        description: Service configuration and network layout.
+        required: true
+        status: SUPPORTED
+      group_index:
+        type: float
+        description: Index of the VM pair within the elastic group.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - in_range:
+          - 0
+          - null
+      sig_subnet_id:
+        type: string
+        description: UUID of the subnet.
+        required: true
+        status: SUPPORTED
+      workload_context:
+        type: string
+        description: Workload context for this VNF.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      ssh_private_key:
+        type: string
+        description: Private SSH key for VM to VM communication in this system.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_cfed_1_int_ctrl0_port_0_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      int_ctrl1_Sec_Grp:
+        type: string
+        description: Internal network 0 security group UUID.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      current_group_count:
+        type: string
+        description: |
+          Current VM pair count within the elastic group.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl0_port_0_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      total_pair_count:
+        type: string
+        description: |
+          This string will evaluate to the number of PairGroups in the VNF.
+        required: true
+        status: SUPPORTED
+      int_ctrl1_net_id:
+        type: string
+        description: Internal network 1.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      cfed_image_name:
+        type: string
+        description: VM image name.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      ssh_public_key:
+        type: string
+        description: Public SSH key for VM to VM communication in this system.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      port_cfed_1_int_ctrl0_port_0_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_cfed_1_sig_port_2_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      sig_net_id:
+        type: string
+        description: UUID of the network.
+        required: true
+        status: SUPPORTED
+      sigv6_v6_subnet_id:
+        type: string
+        description: UUID of the subnet.
+        required: true
+        status: SUPPORTED
+      vf_module_index:
+        type: float
+        description: Unique index for this VNF Module instance.
+        required: true
+        status: SUPPORTED
+      backup_file1:
+        type: string
+        description: |
+          <cURL path>/<backup file>
+          This is only used for restore (aka "disaster recovery") and
+          only referenced on OAM-A.
+        required: true
+        status: SUPPORTED
+      vf_module_id:
+        type: string
+        description: Unique ID for this VNF module instance.
+        required: true
+        status: SUPPORTED
+      backup_file2:
+        type: string
+        description: |
+          <cURL path>/<backup file>
+          This is only used for restore (aka "disaster recovery") and
+          only referenced on OAM-A.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      cfed_names:
+        type: list
+        description: VM name list.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      role:
+        type: string
+        description: VM role during LCM activities.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - valid_values:
+          - oam
+          - other
+      vnf_name:
+        type: string
+        description: Unique name for this VNF instance.
+        required: true
+        status: SUPPORTED
+      vf_module_name:
+        type: string
+        description: Unique name for this VNF module instance.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl0_port_0_related_networks:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.RelatedNetworksAssignments
+      port_cfed_1_int_ctrl1_port_1_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      vnf_id:
+        type: string
+        description: Unique ID for this VNF instance.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      lcm_keypair:
+        type: string
+        description: Lifecycle management access key pair.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      availability_zone_1:
+        type: string
+        description: VM availability zone.
+        required: true
+        status: SUPPORTED
+      sig_Sec_Grp:
+        type: string
+        description: UUID of the security group.
+        required: true
+        status: SUPPORTED
+      int_ctrl0_Sec_Grp:
+        type: string
+        description: Internal network 0 security group UUID.
+        required: true
+        status: SUPPORTED
+      net_info_str:
+        type: string
+        description: |
+          JSON formatted string with all network info.
+          This is redundant with int_net_info and ext_net_info except
+          in Kilo there is no way to convert json to string for
+          output as a personality file.
+        required: true
+        status: SUPPORTED
+      ssh_access_key:
+        type: string
+        description: Public SSH key for external access.
+        required: true
+        status: SUPPORTED
+      int_ctrl0_net_id:
+        type: string
+        description: Internal network 0.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_sig_port_2_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      environment_context:
+        type: string
+        description: Environment context for this VNF.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl0_port_0_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      pair2idx:
+        type: json
+        description: Map group index to VMtype index.
+        required: true
+        status: SUPPORTED
+      vm_role:
+        type: string
+        description: Unique role for these VMs.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl0_port_0_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_cfed_1_int_ctrl0_port_0_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl0_port_0_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      group_id:
+        type: string
+        description: ID number of the elastic group this pair is a member of.
+        required: true
+        status: SUPPORTED
+      install_config:
+        type: string
+        description: JSON formatted string of install config values.
+        required: true
+        status: SUPPORTED
+      cfed_volume_1:
+        type: json
+        description: CFED Volume.
+        required: true
+        status: SUPPORTED
+      group_tag:
+        type: string
+        description: Key into "usage_info" for members of this elastic group.
+        required: true
+        status: SUPPORTED
+      port_cfed_1_int_ctrl1_port_1_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+    attributes:
+      VMB-EXT_IPS:
+        type: string
+        description: IP addresses assigned to the first external network.
+        status: SUPPORTED
+      Version:
+        type: string
+        description: |
+          Template file version number. This should be updated
+          each time a non-comment change is made to this file.
+        status: SUPPORTED
+    requirements:
+    - dependency_cfed_server_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_cfed_server_1:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_cfed_1_int_ctrl1_port_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_1_int_ctrl1_port_1:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_cfed_1_int_ctrl0_port_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_1_int_ctrl0_port_0:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_cfed_1_sig_port_2:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cfed_1_sig_port_2:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      network.incoming.bytes_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.iops_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      instance_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      host_cfed_server_1:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_1_sig_port_2:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.latency_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.capacity_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_util_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      scalable_cfed_server_1:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.allocation_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_1_int_ctrl0_port_0:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_1_int_ctrl1_port_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_1_sig_port_2:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.read.bytes_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.usage_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_1_int_ctrl1_port_1:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      binding_cfed_1_int_ctrl0_port_0:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        - org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.device.read.requests_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.resident_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      vcpus_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_1_sig_port_2:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.latency_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_cfed_server_1:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.requests_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      endpoint_cfed_server_1:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      os_cfed_server_1:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_server_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.ephemeral.size_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.root.size_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_cfed_1_int_ctrl1_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.usage_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.allocation_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu.delta_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cfed_1_int_ctrl1_port_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_cfed_1_sig_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cfed_1_int_ctrl0_port_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes.rate_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.usage_cfed_server_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cfed_1_int_ctrl0_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.heat.nest_common:
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+    properties:
+      total_vm_pairs:
+        type: string
+        description: |
+          This string will evaluate to the number of PairGroups in the VNF.
+        required: true
+        status: SUPPORTED
+      ext_net_list:
+        type: list
+        description: List of applicable subnet tags.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      int_net_count:
+        type: float
+        description: Number of internal networks.
+        required: true
+        status: SUPPORTED
+        constraints:
+        - valid_values:
+          - 1
+          - 2
+      ext_net_info:
+        type: json
+        description: |
+          Maps the network strings used in this HOT file
+           to network info for the target cloud.
+        required: true
+        status: SUPPORTED
+      vnf_name:
+        type: string
+        description: Unique name for this VNF instance.
+        required: true
+        status: SUPPORTED
+      int_net1_label:
+        type: json
+        description: |
+          Map the number of internal networks to an internal net1 label
+          or the empty string.
+        required: true
+        status: SUPPORTED
+    attributes:
+      NetInfoStr:
+        type: string
+        description: Per-subnet information in string format.
+        status: SUPPORTED
+      PrivateKey:
+        type: string
+        description: Private SSH key for pre-install intra-VM communication.
+        status: SUPPORTED
+      Version:
+        type: string
+        description: |
+          Template file version number. This should be updated
+          each time a non-comment change is made to this file.
+        status: SUPPORTED
+      PublicKey:
+        type: string
+        description: Public SSH key for pre-install intra-VM communication.
+        status: SUPPORTED
+      TotalPairCount:
+        type: string
+        description: |
+          This string will evaluate to the number of PairGroups in the VNF.
+        status: SUPPORTED
+      IntNetInfo:
+        type: string
+        description: Internal network attributes.
+        status: SUPPORTED
+      OpenSec:
+        type: string
+        description: Open security group.
+        status: SUPPORTED
+    requirements:
+    - dependency_Shared_Sec_Grp:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - port_Shared_Sec_Grp:
+        capability: tosca.capabilities.Attachment
+        node: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+        relationship: org.openecomp.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_int_ctrl0_network:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_int_ctrl1_network:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    capabilities:
+      feature_int_ctrl0_network:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_int_ctrl0_network:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      end_point_int_ctrl0_network:
+        type: tosca.capabilities.Endpoint
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_int_ctrl1_network:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      end_point_int_ctrl1_network:
+        type: tosca.capabilities.Endpoint
+        occurrences:
+        - 1
+        - UNBOUNDED
+      link_int_ctrl1_network:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_Shared_Sec_Grp:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_int_ctrl1_network:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      link_int_ctrl0_network:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 1
+        - UNBOUNDED