VFCInstanceGroup is not displayed on VF creation 07/50307/2
authorojasdubey <ojas.dubey@amdocs.com>
Tue, 5 Jun 2018 09:05:25 +0000 (14:35 +0530)
committerOren Kleks <orenkle@amdocs.com>
Wed, 6 Jun 2018 05:56:53 +0000 (05:56 +0000)
Fixed issue for displaying VFCInstanceGroup
for VLAN tagging when naming convention is
correct

Change-Id: I5ea5c042458603389b1fb2aa6e6f985a7114049b
Issue-ID: SDC-1398
Signed-off-by: ojasdubey <ojas.dubey@amdocs.com>
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/ConsolidationDataUtil.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionSubInterfaceFullTest.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/vdbeav/in/MANIFEST.json [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/vdbeav/in/vdbeav_base_heat_template.env [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/vdbeav/in/vdbeav_base_heat_template.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/vdbeav/in/vdbeav_subinterface_heat_template.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/vdbeav/out/GlobalSubstitutionTypesServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/vdbeav/out/MainServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/vdbeav/out/Nested_vdbeServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/vdbeav/out/Nested_vdbe_1ServiceTemplate.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/vdbeav/out/vdbeav_subinterface_heat_templateServiceTemplate.yaml [new file with mode: 0644]

index 6b2770c..64c2168 100644 (file)
@@ -194,16 +194,38 @@ public class ConsolidationDataUtil {
         PortTemplateConsolidationData portTemplateConsolidationData =
                 filePortConsolidationData.getPortTemplateConsolidationData(parentPortNodeTemplateId);
         if (portTemplateConsolidationData == null) {
-            portTemplateConsolidationData = new PortTemplateConsolidationData();
-            portTemplateConsolidationData.setNodeTemplateId(parentPortNodeTemplateId);
+            Optional<String> portResourceId = getSubInterfaceParentPortResourceId(parentPortNodeTemplateId,
+                    subInterfaceTo);
+            if (portResourceId.isPresent()) {
+                portTemplateConsolidationData = getInitPortTemplateConsolidationData(parentPortNodeTemplateId,
+                        portResourceId.get(), HeatToToscaUtil.getResourceType(portResourceId.get(), subInterfaceTo
+                                .getHeatOrchestrationTemplate(), subInterfaceTo.getHeatFileName()));
+            } else {
+                portTemplateConsolidationData = new PortTemplateConsolidationData();
+                portTemplateConsolidationData.setNodeTemplateId(parentPortNodeTemplateId);
+            }
             filePortConsolidationData.setPortTemplateConsolidationData(parentPortNodeTemplateId,
                     portTemplateConsolidationData);
         }
-
         return portTemplateConsolidationData.addSubInterfaceTemplateConsolidationData(
                 subInterfaceTo.getResource(), subInterfaceNodeTemplateId, parentPortNodeTemplateId);
     }
 
+    private static Optional<String> getSubInterfaceParentPortResourceId(String parentPortNodeTemplateId,
+                                                                        TranslateTo subInterfaceTo) {
+        Map<String, String> resourceIdTranslatedResourceIdMap =
+                subInterfaceTo.getContext().getTranslatedIds().get(subInterfaceTo.getHeatFileName());
+        if (MapUtils.isEmpty(resourceIdTranslatedResourceIdMap)) {
+            return Optional.empty();
+        }
+        for (Map.Entry<String, String> entry : resourceIdTranslatedResourceIdMap.entrySet()) {
+            if (entry.getValue().equals(parentPortNodeTemplateId)) {
+                return Optional.of(entry.getKey());
+            }
+        }
+        return Optional.empty();
+    }
+
     /**
      * Gets nested template consolidation data.
      *
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/vdbeav/in/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/vdbeav/in/MANIFEST.json
new file mode 100644 (file)
index 0000000..c98180c
--- /dev/null
@@ -0,0 +1,23 @@
+{
+  "name": "vMME_Small",
+  "description": "HOT template to create 2 cinder volume attachment",
+  "version": "2013-05-23",
+  "data": [
+    {
+      "file": "vdbeav_base_heat_template.yaml",
+      "type": "HEAT",
+      "isBase": "true",
+      "data": [
+        {
+          "file": "vdbeav_base_heat_template.env",
+          "type": "HEAT_ENV"
+        }
+      ]
+    },
+    {
+      "file": "vdbeav_subinterface_heat_template.yaml",
+      "type": "HEAT",
+      "isBase": "false"
+    }
+  ]
+}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/vdbeav/in/vdbeav_base_heat_template.env b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/vdbeav/in/vdbeav_base_heat_template.env
new file mode 100644 (file)
index 0000000..cb94c27
--- /dev/null
@@ -0,0 +1,63 @@
+parameters:
+  vdbe_flavor_name: m1.vsrx.dpdk
+  vdbe_image_name: vSRX-15.1X49-D50.3 
+  availability_zone_0: novadpdk1 
+  availability_zone_1: novadpdk2  
+  #vnf_name: dbfx0005v
+  #vnf_id: dbfx0005v
+  #vf_module_id: dbfx0005v_base
+  #vdbe_device_name: dbf
+  #vdbe_name_0: dbfx0005vm001
+  #vdbe_name_1: dbfx0005vm002
+  #oam_net_name: 'default-domain:IPXHUB-26177-t-01:VOIP_OAM_NET2'
+  control_int_net_shared: False
+  control_int_net_forwarding_mode: l2
+  control_int_net_flood_unknown_unicast: True
+  control_int_net_rpf: 'disable'
+  fabric_int_net_shared: False
+  fabric_int_net_forwarding_mode: l2
+  fabric_int_net_flood_unknown_unicast: True
+  fabric_int_net_rpf: 'disable'
+  #untrusted_net_name: 'default-domain:IPXHUB-26177-t-01:VOIP_DATA_UNTRUSTED_NET2'
+  #trusted_net_name: 'default-domain:IPXHUB-26177-t-01:VOIP_DATA_TRUSTED_NET2'
+  #control_subnet_cidr: 129.16.0.1/2
+  #fabric_subnet_cidr: 30.17.0.200/8
+  #vdbe_oam_mac_0: 4c:96:14:ee:11:e5
+  #vdbe_oam_mac_1: 4c:96:14:ef:11:f5
+  #vdbe_hw_untr_mac_0: 4c:96:14:11:e5:01
+  #vdbe_hw_untr_mac_1: 4c:96:14:11:f5:01
+  #vdbe_hw_trst_mac_0: 4c:96:14:11:e5:02
+  #vdbe_hw_trst_mac_1: 4c:96:14:11:f5:02
+  #vdbe_oam_ip_0: 10.10.50.54
+  #vdbe_oam_ip_1: 10.10.50.55
+  #vdbe_control_ip_0: 129.16.1.54
+  #vdbe_control_ip_1: 130.16.1.55
+  #vdbe_fabric_ip_0: 30.17.1.254
+  #vdbe_fabric_ip_1: 30.18.1.255
+  #vdbe_untrusted_ip_0: 192.168.2.54
+  #vdbe_untrusted_v6_ip_0: 2001:1890:fc45:f026:135:25:246:d852
+  #vdbe_untrusted_ip_1: 192.168.2.55
+  #vdbe_untrusted_v6_ip_1: 2001:1890:fc45:f026:135:25:246:d853
+  #vdbe_trusted_ip_0: 10.10.20.54
+  #vdbe_trusted_v6_ip_0: 2001:1890:fc45:f046:135:25:246:e852
+  #vdbe_trusted_ip_1: 10.10.20.55
+  #vdbe_trusted_v6_ip_1: 2001:1890:fc45:f046:135:25:246:e853
+  #vdbe_untrusted_vmac_address: 00:10:db:ff:50:00
+  #vdbe_aap_untrusted_ip_prefix: 192.168.2.54
+  #vdbe_aap_untrusted_ip_prefix_len: 24
+  #vdbe_aap_sec_untrusted_ip_prefix: 192.168.2.55
+  #vdbe_aap_sec_untrusted_ip_prefix_len: 32
+  #vdbe_aap_untrusted_v6_ip_prefix: 2001:1890:fc45:f026:135:25:246:d852
+  #vdbe_aap_untrusted_v6_ip_prefix_len: 64
+  #vdbe_trusted_vmac_address: 00:10:db:ff:50:01
+  vdbe_aap_trusted_ip_prefix: "0.0.0.0"
+  vdbe_aap_trusted_ip_prefix_len: "0"
+  #vdbe_aap_sec_trusted_ip_prefix: 10.10.20.55
+  #vdbe_aap_sec_trusted_ip_prefix_len: 32
+  vdbe_aap_trusted_v6_ip_prefix: "::" 
+  vdbe_aap_trusted_v6_ip_prefix_len: "0"
+  aap_address_mode : 'active-standby'
+  #untrusted_num_vn: 3
+  #untrusted_vlan_tags: ["100", "200", "300"]
+  #untrusted_vn_networks: ['default-domain:IPXHUB-26177-t-01:VOIP_DATA_UNTRUSTED_NET2_1', 'default-domain:IPXHUB-26177-t-01:VOIP_DATA_UNTRUSTED_NET2_2', 'default-domain:IPXHUB-26177-t-01:VOIP_DATA_UNTRUSTED_NET2_3']
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/vdbeav/in/vdbeav_base_heat_template.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/vdbeav/in/vdbeav_base_heat_template.yaml
new file mode 100644 (file)
index 0000000..ba73054
--- /dev/null
@@ -0,0 +1,919 @@
+description: "HOT template to deploy a vDBE HA of type DBE-I, DBE-P, DBE-AFC, and DBE-V (non-trunkport) cluster into an existing tenant network and assign network interfaces to the vDBE"
+heat_template_version: 2015-04-30
+parameters: 
+  aap_address_mode: 
+    description: "Address mode for the vDBE cluster IP"
+    type: string
+  availability_zone_0: 
+    description: "The availability zone of primary node0 vDBE vm in the local HA pair."
+    type: string
+  availability_zone_1: 
+    description: "The availability zone of secondary node1 vDBE vm in the local HA pair."
+    type: string
+  control_int_net_flood_unknown_unicast: 
+    description: "forwarding mode of the control virtual network"
+    type: boolean
+  control_int_net_forwarding_mode: 
+    description: "forwarding mode of the control virtual network"
+    type: string
+  control_int_net_rpf: 
+    description: "Reverse Path Filtering enable or disable for the control virtual network"
+    type: string
+  control_int_net_shared: 
+    description: "control virtual network shared"
+    type: boolean
+  control_subnet_cidr: 
+    description: "control subnet CIDR"
+    type: string
+  fabric_int_net_flood_unknown_unicast: 
+    description: "forwarding mode of the fabric virtual network"
+    type: boolean
+  fabric_int_net_forwarding_mode: 
+    description: "forwarding mode of the fabric virtual network"
+    type: string
+  fabric_int_net_rpf: 
+    description: "Reverse Path Filtering enable or disable for the fabric virtual network"
+    type: string
+  fabric_int_net_shared: 
+    description: "fabric virtual network shared"
+    type: boolean
+  fabric_subnet_cidr: 
+    description: "fabric subnet CIDR"
+    type: string
+  oam_net_name: 
+    description: "Name of NSDNet network from which the management IP addresses will be allocated"
+    type: string
+  trusted_net_name: 
+    description: "Name of public trusted network into which this vDBE HA cluster is deployed"
+    type: string
+  untrusted_net_name: 
+    description: "Name of public untrusted network into which this vDBE HA cluster is deployed"
+    type: string
+  untrusted_num_vn: 
+    constraints: 
+      - 
+        range: 
+          max: 77
+          min: 1
+    description: "Number of vDBE subinterface virtual Networks"
+    type: number
+  untrusted_vlan_tags: 
+    description: "List of subinterface vlan tags"
+    type: comma_delimited_list
+  untrusted_vn_networks: 
+    description: "List of subinterface virtual networks"
+    type: comma_delimited_list
+  vdbe_aap_sec_trusted_ip_prefix: 
+    description: "ip prefix for the secondary vDBE VM aap on the VAN trusted network"
+    type: string
+  vdbe_aap_sec_trusted_ip_prefix_len: 
+    description: "ip prefix length for the secondary vDBE VM aap on the VAN trusted network"
+    type: string
+  vdbe_aap_sec_untrusted_ip_prefix: 
+    description: "ip prefix for secondary vDBE VM aap on the VAN untrusted network"
+    type: string
+  vdbe_aap_sec_untrusted_ip_prefix_len: 
+    description: "ip prefix length for the secondary DBE VM aap on the VAN untrusted network"
+    type: string
+  vdbe_aap_trusted_ip_prefix: 
+    description: "ip prefix for the primary vDBE VM on the VAN trusted network"
+    type: string
+  vdbe_aap_trusted_ip_prefix_len: 
+    description: "ip prefix length for the primary vDBE VM on the VAN trusted network"
+    type: string
+  vdbe_aap_trusted_v6_ip_prefix: 
+    description: "ipv6 prefix for the primary vDBE VM on the VAN trusted network"
+    type: string
+  vdbe_aap_trusted_v6_ip_prefix_len: 
+    description: "ipv6 prefix length for the primary vDBE VM on the VAN trusted network"
+    type: string
+  vdbe_aap_untrusted_ip_prefix: 
+    description: "ip prefix for primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_ip_prefix_len: 
+    description: "ip prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_v6_ip_prefix: 
+    description: "ipv6 prefix for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_aap_untrusted_v6_ip_prefix_len: 
+    description: "ipv6 prefix length for the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_control_ip_0: 
+    description: "IP address of the primary vDBE VM on the HA control network"
+    type: string
+  vdbe_control_ip_1: 
+    description: "IP address of the secondary vDBE VM on the HA control network"
+    type: string
+  vdbe_device_name: 
+    description: "VDBE device Name for this vdbe VNF"
+    type: string
+  vdbe_fabric_ip_0: 
+    description: "IP address of the primary vDBE VM on the HA fabric network"
+    type: string
+  vdbe_fabric_ip_1: 
+    description: "IP address of the secondary vDBE VM on the HA fabric network"
+    type: string
+  vdbe_flavor_name: 
+    description: "Flavor to use for vDBE"
+    type: string
+  vdbe_hw_trst_mac_0: 
+    description: "Secondary MAC address of the primary vDBE VM on the VAN trusted network"
+    type: string
+  vdbe_hw_trst_mac_1: 
+    description: "Secondary MAC address of the secondary vDBE VM on the VAN trusted network"
+    type: string
+  vdbe_hw_untr_mac_0: 
+    description: "Secondary MAC address of the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_hw_untr_mac_1: 
+    description: "Secondary MAC address of the secondary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_image_name: 
+    description: "Name of image to use for vDBE"
+    type: string
+  vdbe_name_0: 
+    description: "VM Name for this vdbe node 0"
+    type: string
+  vdbe_name_1: 
+    description: "VM Name for this vdbe node 1"
+    type: string
+  vdbe_oam_ip_0: 
+    description: "IP address of the primary vDBE VM on the OAM network"
+    type: string
+  vdbe_oam_ip_1: 
+    description: "IP address of the secondary vDBE VM on the OAM network"
+    type: string
+  vdbe_oam_mac_0: 
+    description: "MAC address of the primary vDBE VM on the OAM network"
+    type: string
+  vdbe_oam_mac_1: 
+    description: "MAC address of the secondary vDBE VM on the OAM network"
+    type: string
+  vdbe_trusted_ip_0: 
+    description: "IPV4 address of the primary vDBE VM on the VAN trusted network"
+    type: string
+  vdbe_trusted_ip_1: 
+    description: "IPV4 address of the secondary vDBE VM on the VAN trusted network"
+    type: string
+  vdbe_trusted_v6_ip_0: 
+    description: "IPV6 address of the primary vDBE VM on the VAN trusted network"
+    type: string
+  vdbe_trusted_v6_ip_1: 
+    description: "IPV6 address of the secondary vDBE VM on the VAN trusted network"
+    type: string
+  vdbe_trusted_vmac_address: 
+    description: "Virtual MAC for the primary vDBE VM on the VAN trusted network"
+    type: string
+  vdbe_untrusted_ip_0: 
+    description: "IPV4 address of the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_untrusted_ip_1: 
+    description: "IPV4 address of the secondary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_untrusted_v6_ip_0: 
+    description: "IPV6 address of the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_untrusted_v6_ip_1: 
+    description: "IPV6 address of the secondary vDBE VM on the VAN untrusted network"
+    type: string
+  vdbe_untrusted_vmac_address: 
+    description: "Virtual MAC of the primary vDBE VM on the VAN untrusted network"
+    type: string
+  vf_module_id: 
+    description: "Unique ID for this VF module inst"
+    type: string
+  vnf_id: 
+    description: "Unique ID for this VF inst"
+    type: string
+  vnf_name: 
+    description: "Unique name for this VF instance"
+    type: string
+resources: 
+  control_int_net: 
+    properties: 
+      flood_unknown_unicast: 
+        get_param: control_int_net_flood_unknown_unicast
+      is_shared: 
+        get_param: control_int_net_shared
+      name: 
+        str_replace: 
+          params: 
+            VNF_NAME: 
+              get_param: vnf_name
+          template: VNF_NAME_control_net
+      virtual_network_properties: 
+        virtual_network_properties_forwarding_mode: 
+          get_param: control_int_net_forwarding_mode
+        virtual_network_properties_rpf: 
+          get_param: control_int_net_rpf
+    type: "OS::ContrailV2::VirtualNetwork"
+  control_subnet: 
+    properties: 
+      cidr: 
+        get_param: control_subnet_cidr
+      name: 
+        str_replace: 
+          params: 
+            VNF_NAME: 
+              get_param: vnf_name
+          template: VNF_NAME_control_subnet
+      network: 
+        get_resource: control_int_net
+    type: "OS::Neutron::Subnet"
+  fabric_int_net: 
+    properties: 
+      flood_unknown_unicast: 
+        get_param: fabric_int_net_flood_unknown_unicast
+      is_shared: 
+        get_param: fabric_int_net_shared
+      name: 
+        str_replace: 
+          params: 
+            VNF_NAME: 
+              get_param: vnf_name
+          template: VNF_NAME_fabric_net
+      virtual_network_properties: 
+        virtual_network_properties_forwarding_mode: 
+          get_param: fabric_int_net_forwarding_mode
+        virtual_network_properties_rpf: 
+          get_param: fabric_int_net_rpf
+    type: "OS::ContrailV2::VirtualNetwork"
+  fabric_subnet: 
+    properties: 
+      cidr: 
+        get_param: fabric_subnet_cidr
+      name: 
+        str_replace: 
+          params: 
+            VNF_NAME: 
+              get_param: vnf_name
+          template: VNF_NAME_fabric_subnet
+      network: 
+        get_resource: fabric_int_net
+    type: "OS::Neutron::Subnet"
+  vdbe_0_untr_vmi_0: 
+    properties: 
+      name: 
+        str_replace: 
+          params: 
+            DBE: 
+              get_param: vdbe_device_name
+            VM_NAME: 
+              get_param: vdbe_name_0
+          template: VM_NAMEDBE001p1n004
+      virtual_machine_interface_allowed_address_pairs: 
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair: 
+          - 
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: 
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip: 
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: 
+                get_param: vdbe_aap_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: 
+                get_param: vdbe_aap_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: 
+              get_param: vdbe_untrusted_vmac_address
+          - 
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: 
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip: 
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: 
+                get_param: vdbe_aap_sec_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: 
+                get_param: vdbe_aap_sec_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: 
+              get_param: vdbe_hw_untr_mac_0
+          - 
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: 
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip: 
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: 
+                get_param: vdbe_aap_untrusted_v6_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: 
+                get_param: vdbe_aap_untrusted_v6_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: 
+              get_param: vdbe_untrusted_vmac_address
+      virtual_machine_interface_mac_addresses: 
+        virtual_machine_interface_mac_addresses_mac_address: 
+          - 
+            get_param: vdbe_hw_untr_mac_0
+      virtual_network_refs: 
+        - 
+          get_param: untrusted_net_name
+    type: "OS::ContrailV2::VirtualMachineInterface"
+  vdbe_1_untr_vmi_1: 
+    properties: 
+      name: 
+        str_replace: 
+          params: 
+            DBE: 
+              get_param: vdbe_device_name
+            VM_NAME: 
+              get_param: vdbe_name_1
+          template: VM_NAMEDBE001p1n004
+      virtual_machine_interface_allowed_address_pairs: 
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair: 
+          - 
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: 
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip: 
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: 
+                get_param: vdbe_aap_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: 
+                get_param: vdbe_aap_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: 
+              get_param: vdbe_untrusted_vmac_address
+          - 
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: 
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip: 
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: 
+                get_param: vdbe_aap_sec_untrusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: 
+                get_param: vdbe_aap_sec_untrusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: 
+              get_param: vdbe_hw_untr_mac_1
+          - 
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: 
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip: 
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: 
+                get_param: vdbe_aap_untrusted_v6_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: 
+                get_param: vdbe_aap_untrusted_v6_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: 
+              get_param: vdbe_untrusted_vmac_address
+      virtual_machine_interface_mac_addresses: 
+        virtual_machine_interface_mac_addresses_mac_address: 
+          - 
+            get_param: vdbe_hw_untr_mac_1
+      virtual_network_refs: 
+        - 
+          get_param: untrusted_net_name
+    type: "OS::ContrailV2::VirtualMachineInterface"
+  vdbe_ServerGroup: 
+    properties: 
+      policies: 
+        - anti-affinity
+    type: "OS::Nova::ServerGroup"
+  vdbe_control_Iip_0: 
+    depends_on: 
+      - vdbe_ctrl_0_port
+    properties: 
+      instance_ip_address: 
+        get_param: vdbe_control_ip_0
+      virtual_machine_interface_refs: 
+        - 
+          get_resource: vdbe_ctrl_0_port
+      virtual_network_refs: 
+        - 
+          get_resource: control_int_net
+    type: "OS::ContrailV2::InstanceIp"
+  vdbe_control_Iip_1: 
+    depends_on: 
+      - vdbe_ctrl_1_port
+    properties: 
+      instance_ip_address: 
+        get_param: vdbe_control_ip_1
+      virtual_machine_interface_refs: 
+        - 
+          get_resource: vdbe_ctrl_1_port
+      virtual_network_refs: 
+        - 
+          get_resource: control_int_net
+    type: "OS::ContrailV2::InstanceIp"
+  vdbe_ctrl_0_port: 
+    properties: 
+      name: 
+        str_replace: 
+          params: 
+            DBE: 
+              get_param: vdbe_device_name
+            VM_NAME: 
+              get_param: vdbe_name_0
+          template: VM_NAMEDBE001p1n002
+      virtual_network_refs: 
+        - 
+          get_resource: control_int_net
+    type: "OS::ContrailV2::VirtualMachineInterface"
+  vdbe_ctrl_1_port: 
+    properties: 
+      name: 
+        str_replace: 
+          params: 
+            DBE: 
+              get_param: vdbe_device_name
+            VM_NAME: 
+              get_param: vdbe_name_1
+          template: VM_NAMEDBE001p1n002
+      virtual_network_refs: 
+        - 
+          get_resource: control_int_net
+    type: "OS::ContrailV2::VirtualMachineInterface"
+  vdbe_fabr_0_port: 
+    properties: 
+      name: 
+        str_replace: 
+          params: 
+            DBE: 
+              get_param: vdbe_device_name
+            VM_NAME: 
+              get_param: vdbe_name_0
+          template: VM_NAMEDBE001p1n003
+      virtual_network_refs: 
+        - 
+          get_resource: fabric_int_net
+    type: "OS::ContrailV2::VirtualMachineInterface"
+  vdbe_fabr_1_port: 
+    properties: 
+      name: 
+        str_replace: 
+          params: 
+            DBE: 
+              get_param: vdbe_device_name
+            VM_NAME: 
+              get_param: vdbe_name_1
+          template: VM_NAMEDBE001p1n003
+      virtual_network_refs: 
+        - 
+          get_resource: fabric_int_net
+    type: "OS::ContrailV2::VirtualMachineInterface"
+  vdbe_fabric_Iip_0: 
+    depends_on: 
+      - vdbe_fabr_0_port
+    properties: 
+      instance_ip_address: 
+        get_param: vdbe_fabric_ip_0
+      virtual_machine_interface_refs: 
+        - 
+          get_resource: vdbe_fabr_0_port
+      virtual_network_refs: 
+        - 
+          get_resource: fabric_int_net
+    type: "OS::ContrailV2::InstanceIp"
+  vdbe_fabric_Iip_1: 
+    depends_on: 
+      - vdbe_fabr_1_port
+    properties: 
+      instance_ip_address: 
+        get_param: vdbe_fabric_ip_1
+      virtual_machine_interface_refs: 
+        - 
+          get_resource: vdbe_fabr_1_port
+      virtual_network_refs: 
+        - 
+          get_resource: fabric_int_net
+    type: "OS::ContrailV2::InstanceIp"
+  vdbe_node_0: 
+    depends_on: 
+      - vdbe_oam_Iip_0
+      - vdbe_control_Iip_0
+      - vdbe_fabric_Iip_0
+      - vdbe_untrusted_Iip_0
+      - vdbe_untrusted_v6_Iip_0
+      - vdbe_trusted_Iip_0
+      - vdbe_trusted_v6_Iip_0
+    properties: 
+      availability_zone: 
+        get_param: availability_zone_0
+      flavor: 
+        get_param: vdbe_flavor_name
+      image: 
+        get_param: vdbe_image_name
+      metadata: 
+        vf_module_id: 
+          get_param: vf_module_id
+        vnf_id: 
+          get_param: vnf_id
+        vnf_name: 
+          get_param: vnf_name
+      name: 
+        get_param: vdbe_name_0
+      networks: 
+        - 
+          port: 
+            get_resource: vdbe_oam_0_port
+        - 
+          port: 
+            get_resource: vdbe_ctrl_0_port
+        - 
+          port: 
+            get_resource: vdbe_fabr_0_port
+        - 
+          port: 
+            get_resource: vdbe_0_untr_vmi_0
+        - 
+          port: 
+            get_resource: vdbe_trst_0_port
+      scheduler_hints: 
+        group: 
+          get_resource: vdbe_ServerGroup
+    type: "OS::Nova::Server"
+  vdbe_node_1: 
+    depends_on: 
+      - vdbe_oam_Iip_1
+      - vdbe_control_Iip_1
+      - vdbe_fabric_Iip_1
+      - vdbe_untrusted_Iip_1
+      - vdbe_untrusted_v6_Iip_1
+      - vdbe_trusted_Iip_1
+      - vdbe_trusted_v6_Iip_1
+    properties: 
+      availability_zone: 
+        get_param: availability_zone_1
+      flavor: 
+        get_param: vdbe_flavor_name
+      image: 
+        get_param: vdbe_image_name
+      metadata: 
+        vf_module_id: 
+          get_param: vf_module_id
+        vnf_id: 
+          get_param: vnf_id
+        vnf_name: 
+          get_param: vnf_name
+      name: 
+        get_param: vdbe_name_1
+      networks: 
+        - 
+          port: 
+            get_resource: vdbe_oam_1_port
+        - 
+          port: 
+            get_resource: vdbe_ctrl_1_port
+        - 
+          port: 
+            get_resource: vdbe_fabr_1_port
+        - 
+          port: 
+            get_resource: vdbe_1_untr_vmi_1
+        - 
+          port: 
+            get_resource: vdbe_trst_1_port
+      scheduler_hints: 
+        group: 
+          get_resource: vdbe_ServerGroup
+    type: "OS::Nova::Server"
+  vdbe_oam_0_port: 
+    properties: 
+      name: 
+        str_replace: 
+          params: 
+            DBE: 
+              get_param: vdbe_device_name
+            VM_NAME: 
+              get_param: vdbe_name_0
+          template: VM_NAMEDBE001p1n001
+      virtual_machine_interface_mac_addresses: 
+        virtual_machine_interface_mac_addresses_mac_address: 
+          - 
+            get_param: vdbe_oam_mac_0
+      virtual_network_refs: 
+        - 
+          get_param: oam_net_name
+    type: "OS::ContrailV2::VirtualMachineInterface"
+  vdbe_oam_1_port: 
+    properties: 
+      name: 
+        str_replace: 
+          params: 
+            DBE: 
+              get_param: vdbe_device_name
+            VM_NAME: 
+              get_param: vdbe_name_1
+          template: VM_NAMEDBE001p1n001
+      virtual_machine_interface_mac_addresses: 
+        virtual_machine_interface_mac_addresses_mac_address: 
+          - 
+            get_param: vdbe_oam_mac_1
+      virtual_network_refs: 
+        - 
+          get_param: oam_net_name
+    type: "OS::ContrailV2::VirtualMachineInterface"
+  vdbe_oam_Iip_0: 
+    depends_on: 
+      - vdbe_oam_0_port
+    properties: 
+      instance_ip_address: 
+        get_param: vdbe_oam_ip_0
+      virtual_machine_interface_refs: 
+        - 
+          get_resource: vdbe_oam_0_port
+      virtual_network_refs: 
+        - 
+          get_param: oam_net_name
+    type: "OS::ContrailV2::InstanceIp"
+  vdbe_oam_Iip_1: 
+    depends_on: 
+      - vdbe_oam_1_port
+    properties: 
+      instance_ip_address: 
+        get_param: vdbe_oam_ip_1
+      virtual_machine_interface_refs: 
+        - 
+          get_resource: vdbe_oam_1_port
+      virtual_network_refs: 
+        - 
+          get_param: oam_net_name
+    type: "OS::ContrailV2::InstanceIp"
+  vdbe_trst_0_port: 
+    properties: 
+      name: 
+        str_replace: 
+          params: 
+            DBE: 
+              get_param: vdbe_device_name
+            VM_NAME: 
+              get_param: vdbe_name_0
+          template: VM_NAMEDBE001p1n005
+      virtual_machine_interface_allowed_address_pairs: 
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair: 
+          - 
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: 
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip: 
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: 
+                get_param: vdbe_aap_trusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: 
+                get_param: vdbe_aap_trusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: 
+              get_param: vdbe_trusted_vmac_address
+          - 
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: 
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip: 
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: 
+                get_param: vdbe_aap_sec_trusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: 
+                get_param: vdbe_aap_sec_trusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: 
+              get_param: vdbe_hw_trst_mac_0
+          - 
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: 
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip: 
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: 
+                get_param: vdbe_aap_trusted_v6_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: 
+                get_param: vdbe_aap_trusted_v6_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: 
+              get_param: vdbe_trusted_vmac_address
+      virtual_machine_interface_mac_addresses: 
+        virtual_machine_interface_mac_addresses_mac_address: 
+          - 
+            get_param: vdbe_hw_trst_mac_0
+      virtual_network_refs: 
+        - 
+          get_param: trusted_net_name
+    type: "OS::ContrailV2::VirtualMachineInterface"
+  vdbe_trst_1_port: 
+    properties: 
+      name: 
+        str_replace: 
+          params: 
+            DBE: 
+              get_param: vdbe_device_name
+            VM_NAME: 
+              get_param: vdbe_name_1
+          template: VM_NAMEDBE001p1n005
+      virtual_machine_interface_allowed_address_pairs: 
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair: 
+          - 
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: 
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip: 
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: 
+                get_param: vdbe_aap_trusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: 
+                get_param: vdbe_aap_trusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: 
+              get_param: vdbe_trusted_vmac_address
+          - 
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: 
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip: 
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: 
+                get_param: vdbe_aap_sec_trusted_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: 
+                get_param: vdbe_aap_sec_trusted_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: 
+              get_param: vdbe_hw_trst_mac_1
+          - 
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: 
+              get_param: aap_address_mode
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip: 
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: 
+                get_param: vdbe_aap_trusted_v6_ip_prefix
+              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: 
+                get_param: vdbe_aap_trusted_v6_ip_prefix_len
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: 
+              get_param: vdbe_trusted_vmac_address
+      virtual_machine_interface_mac_addresses: 
+        virtual_machine_interface_mac_addresses_mac_address: 
+          - 
+            get_param: vdbe_hw_trst_mac_1
+      virtual_network_refs: 
+        - 
+          get_param: trusted_net_name
+    type: "OS::ContrailV2::VirtualMachineInterface"
+  vdbe_trusted_Iip_0: 
+    depends_on: 
+      - vdbe_trst_0_port
+    properties: 
+      instance_ip_address: 
+        get_param: vdbe_trusted_ip_0
+      virtual_machine_interface_refs: 
+        - 
+          get_resource: vdbe_trst_0_port
+      virtual_network_refs: 
+        - 
+          get_param: trusted_net_name
+    type: "OS::ContrailV2::InstanceIp"
+  vdbe_trusted_Iip_1: 
+    depends_on: 
+      - vdbe_trst_1_port
+    properties: 
+      instance_ip_address: 
+        get_param: vdbe_trusted_ip_1
+      virtual_machine_interface_refs: 
+        - 
+          get_resource: vdbe_trst_1_port
+      virtual_network_refs: 
+        - 
+          get_param: trusted_net_name
+    type: "OS::ContrailV2::InstanceIp"
+  vdbe_trusted_v6_Iip_0: 
+    depends_on: 
+      - vdbe_trst_0_port
+    properties: 
+      instance_ip_address: 
+        get_param: vdbe_trusted_v6_ip_0
+      instance_ip_family: v6
+      virtual_machine_interface_refs: 
+        - 
+          get_resource: vdbe_trst_0_port
+      virtual_network_refs: 
+        - 
+          get_param: trusted_net_name
+    type: "OS::ContrailV2::InstanceIp"
+  vdbe_trusted_v6_Iip_1: 
+    depends_on: 
+      - vdbe_trst_1_port
+    properties: 
+      instance_ip_address: 
+        get_param: vdbe_trusted_v6_ip_1
+      instance_ip_family: v6
+      virtual_machine_interface_refs: 
+        - 
+          get_resource: vdbe_trst_1_port
+      virtual_network_refs: 
+        - 
+          get_param: trusted_net_name
+    type: "OS::ContrailV2::InstanceIp"
+  vdbe_untr_0_subports: 
+    depends_on: vdbe_0_untr_vmi_0
+    properties: 
+      count: 
+        get_param: untrusted_num_vn
+      resource_def: 
+        properties: 
+          aap_address_mode: 
+            get_param: aap_address_mode
+          aap_sec_untrusted_ip_prefix: 
+            get_param: vdbe_aap_sec_untrusted_ip_prefix
+          aap_sec_untrusted_ip_prefix_len: 
+            get_param: vdbe_aap_sec_untrusted_ip_prefix_len
+          aap_untrusted_ip_prefix: 
+            get_param: vdbe_aap_untrusted_ip_prefix
+          aap_untrusted_ip_prefix_len: 
+            get_param: vdbe_aap_untrusted_ip_prefix_len
+          aap_untrusted_v6_ip_prefix: 
+            get_param: vdbe_aap_untrusted_v6_ip_prefix
+          aap_untrusted_v6_ip_prefix_len: 
+            get_param: vdbe_aap_untrusted_v6_ip_prefix_len
+          counter: "%index%"
+          ip_address: 
+            get_param: vdbe_untrusted_ip_0
+          ip_v6_address: 
+            get_param: vdbe_untrusted_v6_ip_0
+          mac_address: 
+            get_param: vdbe_hw_untr_mac_0
+          parent_interface: 
+            get_resource: vdbe_0_untr_vmi_0
+          subinterfaces_name_prefix: 
+            str_replace: 
+              params: 
+                DBE: 
+                  get_param: vdbe_device_name
+                VM_NAME: 
+                  get_param: vdbe_name_0
+              template: VM_NAMEDBE001p1n004
+          vlan_tag_list: 
+            get_param: untrusted_vlan_tags
+          vmac_address: 
+            get_param: vdbe_untrusted_vmac_address
+          vn_network_list: 
+            get_param: untrusted_vn_networks
+        type: vdbeav_subinterface_heat_template.yaml
+    type: "OS::Heat::ResourceGroup"
+  vdbe_untr_1_subports: 
+    depends_on: vdbe_1_untr_vmi_1
+    properties: 
+      count: 
+        get_param: untrusted_num_vn
+      resource_def: 
+        properties: 
+          aap_address_mode: 
+            get_param: aap_address_mode
+          aap_sec_untrusted_ip_prefix: 
+            get_param: vdbe_aap_sec_untrusted_ip_prefix
+          aap_sec_untrusted_ip_prefix_len: 
+            get_param: vdbe_aap_sec_untrusted_ip_prefix_len
+          aap_untrusted_ip_prefix: 
+            get_param: vdbe_aap_untrusted_ip_prefix
+          aap_untrusted_ip_prefix_len: 
+            get_param: vdbe_aap_untrusted_ip_prefix_len
+          aap_untrusted_v6_ip_prefix: 
+            get_param: vdbe_aap_untrusted_v6_ip_prefix
+          aap_untrusted_v6_ip_prefix_len: 
+            get_param: vdbe_aap_untrusted_v6_ip_prefix_len
+          counter: "%index%"
+          ip_address: 
+            get_param: vdbe_untrusted_ip_1
+          ip_v6_address: 
+            get_param: vdbe_untrusted_v6_ip_1
+          mac_address: 
+            get_param: vdbe_hw_untr_mac_1
+          parent_interface: 
+            get_resource: vdbe_1_untr_vmi_1
+          subinterfaces_name_prefix: 
+            str_replace: 
+              params: 
+                DBE: 
+                  get_param: vdbe_device_name
+                VM_NAME: 
+                  get_param: vdbe_name_1
+              template: VM_NAMEDBE001p1n004
+          vlan_tag_list: 
+            get_param: untrusted_vlan_tags
+          vmac_address: 
+            get_param: vdbe_untrusted_vmac_address
+          vn_network_list: 
+            get_param: untrusted_vn_networks
+        type: vdbeav_subinterface_heat_template.yaml
+    type: "OS::Heat::ResourceGroup"
+  vdbe_untrusted_Iip_0: 
+    depends_on: 
+      - vdbe_0_untr_vmi_0
+    properties: 
+      instance_ip_address: 
+        get_param: vdbe_untrusted_ip_0
+      virtual_machine_interface_refs: 
+        - 
+          get_resource: vdbe_0_untr_vmi_0
+      virtual_network_refs: 
+        - 
+          get_param: untrusted_net_name
+    type: "OS::ContrailV2::InstanceIp"
+  vdbe_untrusted_Iip_1: 
+    depends_on: 
+      - vdbe_1_untr_vmi_1
+    properties: 
+      instance_ip_address: 
+        get_param: vdbe_untrusted_ip_1
+      virtual_machine_interface_refs: 
+        - 
+          get_resource: vdbe_1_untr_vmi_1
+      virtual_network_refs: 
+        - 
+          get_param: untrusted_net_name
+    type: "OS::ContrailV2::InstanceIp"
+  vdbe_untrusted_v6_Iip_0: 
+    depends_on: 
+      - vdbe_0_untr_vmi_0
+    properties: 
+      instance_ip_address: 
+        get_param: vdbe_untrusted_v6_ip_0
+      instance_ip_family: v6
+      virtual_machine_interface_refs: 
+        - 
+          get_resource: vdbe_0_untr_vmi_0
+      virtual_network_refs: 
+        - 
+          get_param: untrusted_net_name
+    type: "OS::ContrailV2::InstanceIp"
+  vdbe_untrusted_v6_Iip_1: 
+    depends_on: 
+      - vdbe_1_untr_vmi_1
+    properties: 
+      instance_ip_address: 
+        get_param: vdbe_untrusted_v6_ip_1
+      instance_ip_family: v6
+      virtual_machine_interface_refs: 
+        - 
+          get_resource: vdbe_1_untr_vmi_1
+      virtual_network_refs: 
+        - 
+          get_param: untrusted_net_name
+    type: "OS::ContrailV2::InstanceIp"
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/vdbeav/in/vdbeav_subinterface_heat_template.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/vdbeav/in/vdbeav_subinterface_heat_template.yaml
new file mode 100644 (file)
index 0000000..98d0975
--- /dev/null
@@ -0,0 +1,152 @@
+heat_template_version: 2015-04-30
+
+description: >
+  HOT template to instantiate a single Contrail VLAN sub-interface with associated instance IP addresses and allowed address pairs
+
+parameters:
+  counter:
+    type: number
+    description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.
+
+  subinterfaces_name_prefix:
+    type: string
+    description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource
+
+  parent_interface:
+    type: string
+    description: Parent Contrail interface
+
+  mac_address:
+    type: string
+    description: HW MAC address to use for subinterface
+
+  vmac_address:
+    type: string
+    description: virtual MAC address to use for subinterface
+
+  ip_address:
+    type: string
+    description: IPv4 address associated with subinterfaces
+
+  ip_v6_address:
+    type: string
+    description: IPv6 address associated with subinterfaces    
+
+  aap_untrusted_ip_prefix:
+    description: ip prefix for primary vDBE VM on the VAN untrusted network
+    type: string
+
+  aap_untrusted_ip_prefix_len:
+    description: ip prefix length for the primary vDBE VM on the VAN untrusted network
+    type: string
+
+  aap_sec_untrusted_ip_prefix:
+    description: ip prefix for secondary vDBE VM aap on the VAN untrusted network
+    type: string
+
+  aap_sec_untrusted_ip_prefix_len:
+    description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network
+    type: string
+
+  aap_untrusted_v6_ip_prefix:
+    description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network
+    type: string
+
+  aap_untrusted_v6_ip_prefix_len:
+    description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network
+    type: string  
+
+  aap_address_mode:
+    description: Address mode for the vDBE cluster IP
+    type: string
+
+  vlan_tag_list:
+    type: comma_delimited_list
+    description: List of VLAN IDs to use for subinterfaces
+
+  vn_network_list:
+    type: comma_delimited_list
+    description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list
+
+resources:
+
+  vdbe_0_subint_untr_vmi_0:
+    type: OS::ContrailV2::VirtualMachineInterface
+    properties:
+      name:
+        str_replace:
+          template: $NAME_$INDEX
+          params:
+            $NAME: { get_param: subinterfaces_name_prefix }
+            $INDEX: { get_param: [ vlan_tag_list, { get_param: counter } ] }
+      virtual_network_refs: [{ get_param: [ vn_network_list, { get_param: counter } ] }]
+      virtual_machine_interface_refs: [{ get_param: parent_interface }]
+      virtual_machine_interface_mac_addresses:
+        { virtual_machine_interface_mac_addresses_mac_address: [{ get_param: mac_address}]
+        }
+      virtual_machine_interface_properties:
+        {
+      virtual_machine_interface_properties_sub_interface_vlan_tag: { get_param: [ vlan_tag_list, { get_param: counter} ] },
+        } 
+      virtual_machine_interface_allowed_address_pairs:
+        {          
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
+            [
+            {          
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+            {                  
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: aap_untrusted_ip_prefix },                  
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: { get_param: aap_untrusted_ip_prefix_len },
+            },
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: { get_param: vmac_address },
+        virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: { get_param: aap_address_mode },
+
+           },
+
+            {           
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+            {                  
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: aap_sec_untrusted_ip_prefix },                  
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: { get_param: aap_sec_untrusted_ip_prefix_len },
+            },
+
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: { get_param: mac_address},
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: { get_param: aap_address_mode },
+
+            },
+            
+            {
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
+            {                  
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: aap_untrusted_v6_ip_prefix },                  
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: { get_param: aap_untrusted_v6_ip_prefix_len },
+            },
+            
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: { get_param: vmac_address },
+            virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: { get_param: aap_address_mode },
+
+           }
+
+           ]
+        }
+
+  vdbe_untrusted_Iip_0:
+    type: OS::ContrailV2::InstanceIp
+    depends_on: [ vdbe_0_subint_untr_vmi_0 ]
+    properties:
+      virtual_machine_interface_refs: [ { get_resource: vdbe_0_subint_untr_vmi_0} ]
+      virtual_network_refs: [{ get_param: [ vn_network_list, { get_param: counter } ] }]
+      instance_ip_address: { get_param: ip_address }
+
+
+  
+  vdbe_untrusted_v6_Iip_0:
+    type: OS::ContrailV2::InstanceIp
+    depends_on: [ vdbe_0_subint_untr_vmi_0 ]
+    properties:
+      virtual_machine_interface_refs: [ { get_resource: vdbe_0_subint_untr_vmi_0} ]
+      virtual_network_refs: [{ get_param: [ vn_network_list, { get_param: counter } ] }]
+      instance_ip_address: { get_param: ip_v6_address }
+      instance_ip_family: "v6"  
+
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/vdbeav/out/GlobalSubstitutionTypesServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/vdbeav/out/GlobalSubstitutionTypesServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..e0caa6b
--- /dev/null
@@ -0,0 +1,2297 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: GlobalSubstitutionTypes
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+node_types:
+  org.openecomp.resource.abstract.nodes.heat.subinterface.vdbeav_subinterface_heat_template:
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+    properties:
+      aap_untrusted_ip_prefix:
+        type: string
+        description: ip prefix for primary vDBE VM on the VAN untrusted network
+        required: true
+        status: SUPPORTED
+      aap_sec_untrusted_ip_prefix:
+        type: string
+        description: ip prefix for secondary vDBE VM aap on the VAN untrusted network
+        required: true
+        status: SUPPORTED
+      ip_v6_address:
+        type: string
+        description: IPv6 address associated with subinterfaces
+        required: true
+        status: SUPPORTED
+      counter:
+        type: float
+        description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.
+        required: true
+        status: SUPPORTED
+      subinterfaces_name_prefix:
+        type: string
+        description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource
+        required: true
+        status: SUPPORTED
+      ip_address:
+        type: string
+        description: IPv4 address associated with subinterfaces
+        required: true
+        status: SUPPORTED
+      aap_address_mode:
+        type: string
+        description: Address mode for the vDBE cluster IP
+        required: true
+        status: SUPPORTED
+      parent_interface:
+        type: string
+        description: Parent Contrail interface
+        required: true
+        status: SUPPORTED
+      aap_untrusted_v6_ip_prefix:
+        type: string
+        description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network
+        required: true
+        status: SUPPORTED
+      vn_network_list:
+        type: list
+        description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      mac_address:
+        type: string
+        description: HW MAC address to use for subinterface
+        required: true
+        status: SUPPORTED
+      vlan_tag_list:
+        type: list
+        description: List of VLAN IDs to use for subinterfaces
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vmac_address:
+        type: string
+        description: virtual MAC address to use for subinterface
+        required: true
+        status: SUPPORTED
+      aap_sec_untrusted_ip_prefix_len:
+        type: string
+        description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network
+        required: true
+        status: SUPPORTED
+      aap_untrusted_v6_ip_prefix_len:
+        type: string
+        description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network
+        required: true
+        status: SUPPORTED
+      aap_untrusted_ip_prefix_len:
+        type: string
+        description: ip prefix length for the primary vDBE VM on the VAN untrusted network
+        required: true
+        status: SUPPORTED
+    requirements:
+    - dependency_vdbe_0_subint_untr_vmi_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - subinterface_link_vdbe_0_subint_untr_vmi_0:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - binding_vdbe_0_subint_untr_vmi_0:
+        capability: tosca.capabilities.network.Bindable
+        node: org.openecomp.resource.cp.nodes.network.Port
+        relationship: tosca.relationships.network.BindsTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      feature_vdbe_0_subint_untr_vmi_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.vdbe:
+    derived_from: org.openecomp.resource.abstract.nodes.VFC
+    properties:
+      port_vdbe_untr_vmi_virtual_machine_interface_allowed_address_pairs:
+        type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs
+        required: true
+        status: SUPPORTED
+      subinterface_vdbeav_subinterface_heat_template_aap_address_mode:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_oam_0_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_vdbe_trst_0_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_vdbe_trst_0_port_virtual_machine_interface_mac_addresses:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_vdbe_fabr_0_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_vdbe_fabr_0_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      compute_vdbe_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_trst_0_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_vdbe_ctrl_0_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_vdbe_trst_0_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_vdbe_oam_0_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      compute_vdbe_metadata:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      subinterface_vdbeav_subinterface_heat_template_aap_sec_untrusted_ip_prefix_len:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_oam_0_port_virtual_network_refs:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_vdbe_trst_0_port_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_untr_vmi_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      subinterface_vdbeav_subinterface_heat_template_parent_interface:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_ctrl_0_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_vdbe_ctrl_0_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_vdbe_ctrl_0_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      subinterface_vdbeav_subinterface_heat_template_aap_untrusted_ip_prefix:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_fabr_0_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      subinterface_vdbeav_subinterface_heat_template_vlan_tag_list:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_vdbe_fabr_0_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_vdbe_fabr_0_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_vdbe_untr_vmi_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_vdbe_trst_0_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_vdbe_oam_0_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      subinterface_vdbeav_subinterface_heat_template_vn_network_list:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      subinterface_vdbeav_subinterface_heat_template_subinterfaces_name_prefix:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_trst_0_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_vdbe_oam_0_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_vdbe_ctrl_0_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_vdbe_ctrl_0_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_vdbe_untr_vmi_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      subinterface_vdbeav_subinterface_heat_template_aap_untrusted_ip_prefix_len:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_fabr_0_port_virtual_network_refs:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      compute_vdbe_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_untr_vmi_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_vdbe_oam_0_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_vdbe_ctrl_0_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      subinterface_vdbeav_subinterface_heat_template_service_template_filter_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: float
+      port_vdbe_trst_0_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_vdbe_untr_vmi_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      subinterface_vdbeav_subinterface_heat_template_mac_address:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      subinterface_vdbeav_subinterface_heat_template_ip_address:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_trst_0_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_vdbe_fabr_0_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      subinterface_vdbeav_subinterface_heat_template_vmac_address:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_untr_vmi_virtual_machine_interface_mac_addresses:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      compute_vdbe_scheduler_hints:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_vdbe_trst_0_port_virtual_machine_interface_allowed_address_pairs:
+        type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs
+        required: true
+        status: SUPPORTED
+      port_vdbe_ctrl_0_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      subinterface_vdbeav_subinterface_heat_template_aap_untrusted_v6_ip_prefix_len:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_oam_0_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_vdbe_untr_vmi_virtual_network_refs:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_vdbe_untr_vmi_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_vdbe_fabr_0_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_vdbe_trst_0_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_vdbe_untr_vmi_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_vdbe_oam_0_port_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      subinterface_vdbeav_subinterface_heat_template_aap_sec_untrusted_ip_prefix:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_oam_0_port_virtual_machine_interface_mac_addresses:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      index_value:
+        type: integer
+        description: Index value of this substitution service template runtime instance
+        required: false
+        default: 0
+        status: SUPPORTED
+        constraints:
+        - greater_or_equal: 0
+      port_vdbe_untr_vmi_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      subinterface_vdbeav_subinterface_heat_template_aap_untrusted_v6_ip_prefix:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_fabr_0_port_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_ctrl_0_port_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_fabr_0_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      subinterface_vdbeav_subinterface_heat_template_ip_v6_address:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_ctrl_0_port_virtual_network_refs:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_vdbe_oam_0_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_vdbe_trst_0_port_virtual_network_refs:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_vdbe_oam_0_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_vdbe_untr_vmi_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+    requirements:
+    - dependency_vdbe_vdbe_fabr_0_port:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_vdbe_vdbe_fabr_0_port:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_vdbe_vdbe_oam_0_port:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_vdbe_vdbe_oam_0_port:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_vdbe_vdbe_trst_0_port:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_vdbe_vdbe_trst_0_port:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_vdbe:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_vdbe:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_vdbe_vdbe_untr_vmi:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_vdbe_vdbe_untr_vmi:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_vdbe_vdbe_ctrl_0_port:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_vdbe_vdbe_ctrl_0_port:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_vdbe_vdbe_untr_vmi_vdbeav_subinterface_heat_template:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_vdbe_0_subint_untr_vmi_0_vdbe_vdbe_untr_vmi_vdbeav_subinterface_heat_template:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - subinterface_link_vdbe_0_subint_untr_vmi_0_vdbe_vdbe_untr_vmi_vdbeav_subinterface_heat_template:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      network.incoming.packets.rate_vdbe_vdbe_untr_vmi:
+        type: org.openecomp.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_vdbe_vdbe_trst_0_port:
+        type: org.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_vdbe:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_vdbe_vdbe_ctrl_0_port:
+        type: org.openecomp.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_vdbe_vdbe_fabr_0_port:
+        type: org.openecomp.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_vdbe:
+        type: org.openecomp.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_vdbe_vdbe_fabr_0_port:
+        type: org.openecomp.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_vdbe_vdbe_fabr_0_port:
+        type: org.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_vdbe:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_vdbe_vdbe_ctrl_0_port:
+        type: org.openecomp.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_vdbe_vdbe_ctrl_0_port:
+        type: org.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_vdbe:
+        type: org.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_vdbe:
+        type: org.openecomp.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_vdbe:
+        type: org.openecomp.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_vdbe_vdbe_fabr_0_port:
+        type: org.openecomp.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_vdbe_vdbe_ctrl_0_port:
+        type: org.openecomp.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_vdbe:
+        type: org.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_vdbe:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_vdbe:
+        type: org.openecomp.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_vdbe_vdbe_ctrl_0_port:
+        type: org.openecomp.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_vdbe:
+        type: org.openecomp.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_vdbe_vdbe_fabr_0_port:
+        type: org.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_vdbe_vdbe_oam_0_port:
+        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
+      feature_vdbe_vdbe_oam_0_port:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      instance_vdbe:
+        type: org.openecomp.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_vdbe_vdbe_oam_0_port:
+        type: org.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_vdbe:
+        type: org.openecomp.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_vdbe_vdbe_trst_0_port:
+        type: org.openecomp.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_vdbe_vdbe_untr_vmi:
+        type: org.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_vdbe:
+        type: org.openecomp.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_vdbe_vdbe_oam_0_port:
+        type: org.openecomp.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_vdbe:
+        type: org.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_vdbe_vdbe_ctrl_0_port:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.latency_vdbe:
+        type: org.openecomp.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_vdbe_vdbe_trst_0_port:
+        type: org.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_vdbe_0_subint_untr_vmi_0_vdbe_vdbe_untr_vmi_vdbeav_subinterface_heat_template:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_vdbe_vdbe_untr_vmi:
+        type: org.openecomp.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_vdbe_vdbe_trst_0_port:
+        type: org.openecomp.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_vdbe:
+        type: org.openecomp.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_vdbe:
+        type: org.openecomp.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_vdbe_vdbe_fabr_0_port:
+        type: org.openecomp.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_vdbe_vdbe_oam_0_port:
+        type: org.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_vdbe:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_vdbe_vdbe_untr_vmi:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_vdbe_vdbe_trst_0_port:
+        type: org.openecomp.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_vdbe_vdbe_trst_0_port:
+        type: org.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_vdbe_vdbe_ctrl_0_port:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.root.size_vdbe:
+        type: org.openecomp.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_vdbe_vdbe_trst_0_port:
+        type: org.openecomp.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_vdbe_vdbe_ctrl_0_port:
+        type: org.openecomp.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_vdbe_vdbe_untr_vmi:
+        type: org.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_vdbe:
+        type: org.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_vdbe:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes_vdbe:
+        type: org.openecomp.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_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.ephemeral.size_vdbe:
+        type: org.openecomp.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_vdbe_vdbe_oam_0_port:
+        type: org.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_vdbe_vdbe_untr_vmi:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests.rate_vdbe:
+        type: org.openecomp.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_vdbe_vdbe_oam_0_port:
+        type: org.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_vdbe_vdbe_ctrl_0_port:
+        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
+      feature_vdbe_vdbe_trst_0_port:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_vdbe_vdbe_oam_0_port:
+        type: org.openecomp.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_vdbe:
+        type: org.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_vdbe_vdbe_untr_vmi_vdbeav_subinterface_heat_template:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests_vdbe:
+        type: org.openecomp.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_vdbe:
+        type: org.openecomp.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_vdbe:
+        type: org.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_vdbe:
+        type: org.openecomp.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.requests_vdbe:
+        type: org.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_vdbe_vdbe_oam_0_port:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_vdbe_vdbe_untr_vmi:
+        type: org.openecomp.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_vdbe_vdbe_fabr_0_port:
+        type: org.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_vdbe:
+        type: org.openecomp.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_vdbe_vdbe_ctrl_0_port:
+        type: org.openecomp.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_vdbe:
+        type: org.openecomp.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_vdbe:
+        type: org.openecomp.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_vdbe_vdbe_untr_vmi:
+        type: org.openecomp.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_vdbe:
+        type: org.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_vdbe_vdbe_untr_vmi:
+        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.usage_vdbe:
+        type: org.openecomp.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_vdbe_vdbe_ctrl_0_port:
+        type: org.openecomp.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_vdbe:
+        type: org.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_vdbe_vdbe_fabr_0_port:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_vdbe_vdbe_oam_0_port:
+        type: org.openecomp.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_vdbe_vdbe_trst_0_port:
+        type: org.openecomp.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_vdbe_vdbe_oam_0_port:
+        type: org.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_vdbe_vdbe_fabr_0_port:
+        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.capacity_vdbe:
+        type: org.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_vdbe:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_vdbe_vdbe_trst_0_port:
+        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.outgoing.packets.rate_vdbe_vdbe_untr_vmi:
+        type: org.openecomp.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_vdbe_vdbe_untr_vmi:
+        type: org.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_vdbe_vdbe_fabr_0_port:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_vdbe_vdbe_fabr_0_port:
+        type: org.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_vdbe_vdbe_trst_0_port:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests_vdbe:
+        type: org.openecomp.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_vdbe:
+        type: org.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.vdbe_1:
+    derived_from: org.openecomp.resource.abstract.nodes.VFC
+    properties:
+      port_vdbe_untr_vmi_virtual_machine_interface_allowed_address_pairs:
+        type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs
+        required: true
+        status: SUPPORTED
+      subinterface_vdbeav_subinterface_heat_template_aap_address_mode:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_ctrl_1_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      compute_vdbe_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_ctrl_1_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_vdbe_oam_1_port_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_fabr_1_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_vdbe_trst_1_port_virtual_network_refs:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_vdbe_trst_1_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      compute_vdbe_metadata:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_vdbe_fabr_1_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      subinterface_vdbeav_subinterface_heat_template_aap_sec_untrusted_ip_prefix_len:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_trst_1_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_vdbe_untr_vmi_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_vdbe_fabr_1_port_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      subinterface_vdbeav_subinterface_heat_template_parent_interface:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_oam_1_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_vdbe_fabr_1_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      subinterface_vdbeav_subinterface_heat_template_aap_untrusted_ip_prefix:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_oam_1_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      subinterface_vdbeav_subinterface_heat_template_vlan_tag_list:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_vdbe_oam_1_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_vdbe_untr_vmi_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_vdbe_fabr_1_port_virtual_network_refs:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      subinterface_vdbeav_subinterface_heat_template_vn_network_list:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_vdbe_trst_1_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      subinterface_vdbeav_subinterface_heat_template_subinterfaces_name_prefix:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_ctrl_1_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_vdbe_oam_1_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_vdbe_ctrl_1_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_vdbe_untr_vmi_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_trst_1_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      subinterface_vdbeav_subinterface_heat_template_aap_untrusted_ip_prefix_len:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      compute_vdbe_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_oam_1_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_vdbe_trst_1_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_vdbe_untr_vmi_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      subinterface_vdbeav_subinterface_heat_template_service_template_filter_count:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: float
+      port_vdbe_untr_vmi_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_vdbe_fabr_1_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      subinterface_vdbeav_subinterface_heat_template_mac_address:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_fabr_1_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      subinterface_vdbeav_subinterface_heat_template_ip_address:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_trst_1_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_vdbe_oam_1_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      subinterface_vdbeav_subinterface_heat_template_vmac_address:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_untr_vmi_virtual_machine_interface_mac_addresses:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_vdbe_ctrl_1_port_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_ctrl_1_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      compute_vdbe_scheduler_hints:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_vdbe_trst_1_port_virtual_machine_interface_allowed_address_pairs:
+        type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs
+        required: true
+        status: SUPPORTED
+      subinterface_vdbeav_subinterface_heat_template_aap_untrusted_v6_ip_prefix_len:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_untr_vmi_virtual_network_refs:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_vdbe_untr_vmi_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_vdbe_fabr_1_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_vdbe_trst_1_port_virtual_machine_interface_mac_addresses:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_vdbe_untr_vmi_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      subinterface_vdbeav_subinterface_heat_template_aap_sec_untrusted_ip_prefix:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_oam_1_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      index_value:
+        type: integer
+        description: Index value of this substitution service template runtime instance
+        required: false
+        default: 0
+        status: SUPPORTED
+        constraints:
+        - greater_or_equal: 0
+      port_vdbe_fabr_1_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_vdbe_oam_1_port_virtual_network_refs:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_vdbe_untr_vmi_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_vdbe_ctrl_1_port_virtual_network_refs:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_vdbe_oam_1_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      subinterface_vdbeav_subinterface_heat_template_aap_untrusted_v6_ip_prefix:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_trst_1_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_vdbe_ctrl_1_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_vdbe_fabr_1_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_vdbe_ctrl_1_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_vdbe_ctrl_1_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_vdbe_trst_1_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      subinterface_vdbeav_subinterface_heat_template_ip_v6_address:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_oam_1_port_virtual_machine_interface_mac_addresses:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_vdbe_trst_1_port_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_vdbe_untr_vmi_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+    requirements:
+    - dependency_vdbe:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_vdbe:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_vdbe_vdbe_trst_1_port:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_vdbe_vdbe_trst_1_port:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_vdbe_vdbe_oam_1_port:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_vdbe_vdbe_oam_1_port:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_vdbe_vdbe_untr_vmi:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_vdbe_vdbe_untr_vmi:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_vdbe_vdbe_fabr_1_port:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_vdbe_vdbe_fabr_1_port:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_vdbe_vdbe_ctrl_1_port:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_vdbe_vdbe_ctrl_1_port:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_vdbe_vdbe_untr_vmi_vdbeav_subinterface_heat_template:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_vdbe_0_subint_untr_vmi_0_vdbe_vdbe_untr_vmi_vdbeav_subinterface_heat_template:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - subinterface_link_vdbe_0_subint_untr_vmi_0_vdbe_vdbe_untr_vmi_vdbeav_subinterface_heat_template:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      binding_vdbe_vdbe_trst_1_port:
+        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.outpoing.packets_vdbe_vdbe_ctrl_1_port:
+        type: org.openecomp.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_vdbe_vdbe_fabr_1_port:
+        type: org.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_vdbe_vdbe_trst_1_port:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_vdbe_vdbe_untr_vmi:
+        type: org.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_vdbe:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.iops_vdbe:
+        type: org.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_vdbe:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_vdbe_vdbe_ctrl_1_port:
+        type: org.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_vdbe:
+        type: org.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_vdbe:
+        type: org.openecomp.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_vdbe:
+        type: org.openecomp.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_vdbe_vdbe_fabr_1_port:
+        type: org.openecomp.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_vdbe_vdbe_ctrl_1_port:
+        type: org.openecomp.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_vdbe_vdbe_ctrl_1_port:
+        type: org.openecomp.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_vdbe:
+        type: org.openecomp.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_vdbe_vdbe_oam_1_port:
+        type: org.openecomp.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_vdbe_vdbe_trst_1_port:
+        type: org.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_vdbe:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_vdbe:
+        type: org.openecomp.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_vdbe_vdbe_fabr_1_port:
+        type: org.openecomp.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_vdbe:
+        type: org.openecomp.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_vdbe_vdbe_oam_1_port:
+        type: org.openecomp.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_vdbe_vdbe_fabr_1_port:
+        type: org.openecomp.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_vdbe_vdbe_fabr_1_port:
+        type: org.openecomp.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_vdbe_vdbe_ctrl_1_port:
+        type: org.openecomp.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_vdbe_vdbe_oam_1_port:
+        type: org.openecomp.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_vdbe_vdbe_fabr_1_port:
+        type: org.openecomp.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_vdbe_vdbe_fabr_1_port:
+        type: org.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_vdbe:
+        type: org.openecomp.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_vdbe_vdbe_trst_1_port:
+        type: org.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_vdbe:
+        type: org.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_vdbe_vdbe_fabr_1_port:
+        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.bytes.rate_vdbe_vdbe_untr_vmi:
+        type: org.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_vdbe:
+        type: org.openecomp.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_vdbe:
+        type: org.openecomp.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_vdbe_vdbe_ctrl_1_port:
+        type: org.openecomp.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_vdbe:
+        type: org.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_vdbe_0_subint_untr_vmi_0_vdbe_vdbe_untr_vmi_vdbeav_subinterface_heat_template:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_vdbe_vdbe_fabr_1_port:
+        type: org.openecomp.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_vdbe_vdbe_oam_1_port:
+        type: org.openecomp.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_vdbe_vdbe_untr_vmi:
+        type: org.openecomp.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_vdbe:
+        type: org.openecomp.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_vdbe:
+        type: org.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_vdbe_vdbe_trst_1_port:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      os_vdbe:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      forwarder_vdbe_vdbe_untr_vmi:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_vdbe_vdbe_trst_1_port:
+        type: org.openecomp.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_vdbe:
+        type: org.openecomp.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_vdbe_vdbe_untr_vmi:
+        type: org.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_vdbe:
+        type: org.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_vdbe:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes_vdbe:
+        type: org.openecomp.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_vdbe:
+        type: org.openecomp.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_vdbe_vdbe_oam_1_port:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.ephemeral.size_vdbe:
+        type: org.openecomp.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_vdbe_vdbe_trst_1_port:
+        type: org.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_vdbe_vdbe_untr_vmi:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_vdbe_vdbe_trst_1_port:
+        type: org.openecomp.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_vdbe_vdbe_trst_1_port:
+        type: org.openecomp.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_vdbe:
+        type: org.openecomp.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_vdbe_vdbe_trst_1_port:
+        type: org.openecomp.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_vdbe:
+        type: org.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_vdbe_vdbe_untr_vmi_vdbeav_subinterface_heat_template:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests_vdbe:
+        type: org.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_vdbe_vdbe_fabr_1_port:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.capacity_vdbe:
+        type: org.openecomp.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_vdbe_vdbe_oam_1_port:
+        type: org.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_vdbe_vdbe_ctrl_1_port:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.usage_vdbe:
+        type: org.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_vdbe:
+        type: org.openecomp.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.requests_vdbe:
+        type: org.openecomp.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_vdbe_vdbe_ctrl_1_port:
+        type: org.openecomp.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_vdbe_vdbe_untr_vmi:
+        type: org.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_vdbe_vdbe_fabr_1_port:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu.delta_vdbe:
+        type: org.openecomp.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_vdbe:
+        type: org.openecomp.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_vdbe:
+        type: org.openecomp.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_vdbe_vdbe_untr_vmi:
+        type: org.openecomp.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_vdbe:
+        type: org.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_vdbe_vdbe_untr_vmi:
+        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.usage_vdbe:
+        type: org.openecomp.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_vdbe:
+        type: org.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_vdbe_vdbe_oam_1_port:
+        type: org.openecomp.capabilities.Forwarder
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_vdbe_vdbe_oam_1_port:
+        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.outgoing.bytes_vdbe_vdbe_trst_1_port:
+        type: org.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_vdbe_vdbe_ctrl_1_port:
+        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
+      feature_vdbe_vdbe_oam_1_port:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_vdbe:
+        type: org.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_vdbe:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_vdbe_vdbe_oam_1_port:
+        type: org.openecomp.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_vdbe_vdbe_untr_vmi:
+        type: org.openecomp.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_vdbe_vdbe_untr_vmi:
+        type: org.openecomp.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_vdbe_vdbe_ctrl_1_port:
+        type: org.openecomp.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_vdbe:
+        type: org.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_vdbe_vdbe_ctrl_1_port:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_vdbe_vdbe_oam_1_port:
+        type: org.openecomp.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_vdbe:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        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
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/vdbeav/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/vdbeav/out/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..c0685e9
--- /dev/null
@@ -0,0 +1,1174 @@
+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
+topology_template:
+  inputs:
+    fabric_int_net_rpf:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: fabric_int_net_rpf
+      type: string
+      description: Reverse Path Filtering enable or disable for the fabric virtual network
+      default: disable
+    control_int_net_rpf:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: control_int_net_rpf
+      type: string
+      description: Reverse Path Filtering enable or disable for the control virtual network
+      default: disable
+    vdbe_aap_sec_trusted_ip_prefix_len:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: vdbe_aap_sec_trusted_ip_prefix_len
+      type: string
+      description: ip prefix length for the secondary vDBE VM aap on the VAN trusted network
+    control_int_net_forwarding_mode:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: control_int_net_forwarding_mode
+      type: string
+      description: forwarding mode of the control virtual network
+      default: l2
+    vdbe_fabric_ip_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: vdbe_fabric_ip_0
+      type: string
+      description: IP address of the primary vDBE VM on the HA fabric network
+    vdbe_fabric_ip_1:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: vdbe_fabric_ip_1
+      type: string
+      description: IP address of the secondary vDBE VM on the HA fabric network
+    vdbe_oam_ip_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: vdbe_oam_ip_0
+      type: string
+      description: IP address of the primary vDBE VM on the OAM network
+    control_subnet_cidr:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: control_subnet_cidr
+      type: string
+      description: control subnet CIDR
+    vdbe_aap_untrusted_ip_prefix_len:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: vdbe_aap_untrusted_ip_prefix_len
+      type: string
+      description: ip prefix length for the primary vDBE VM on the VAN untrusted network
+    vdbe_oam_ip_1:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: vdbe_oam_ip_1
+      type: string
+      description: IP address of the secondary vDBE VM on the OAM network
+    untrusted_num_vn:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: untrusted_num_vn
+      type: float
+      description: Number of vDBE subinterface virtual Networks
+      constraints:
+      - in_range:
+        - 1
+        - 77
+    control_int_net_shared:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: control_int_net_shared
+      type: boolean
+      description: control virtual network shared
+      default: false
+    control_int_net_flood_unknown_unicast:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: control_int_net_flood_unknown_unicast
+      type: boolean
+      description: forwarding mode of the control virtual network
+      default: true
+    vdbe_trusted_vmac_address:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: vdbe_trusted_vmac_address
+      type: string
+      description: Virtual MAC for the primary vDBE VM on the VAN trusted network
+    vdbe_trusted_ip_1:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: vdbe_trusted_ip_1
+      type: string
+      description: IPV4 address of the secondary vDBE VM on the VAN trusted network
+    vdbe_trusted_ip_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: vdbe_trusted_ip_0
+      type: string
+      description: IPV4 address of the primary vDBE VM on the VAN trusted network
+    vdbe_image_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: vdbe_image_name
+      type: string
+      description: Name of image to use for vDBE
+      default: vSRX-15.1X49-D50.3
+    oam_net_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: oam_net_name
+      type: string
+      description: Name of NSDNet network from which the management IP addresses will be allocated
+    vdbe_aap_untrusted_v6_ip_prefix_len:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: vdbe_aap_untrusted_v6_ip_prefix_len
+      type: string
+      description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network
+    vdbe_aap_trusted_ip_prefix:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: vdbe_aap_trusted_ip_prefix
+      type: string
+      description: ip prefix for the primary vDBE VM on the VAN trusted network
+      default: 0.0.0.0
+    vdbe_flavor_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: vdbe_flavor_name
+      type: string
+      description: Flavor to use for vDBE
+      default: m1.vsrx.dpdk
+    fabric_int_net_forwarding_mode:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: fabric_int_net_forwarding_mode
+      type: string
+      description: forwarding mode of the fabric virtual network
+      default: l2
+    fabric_int_net_shared:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: fabric_int_net_shared
+      type: boolean
+      description: fabric virtual network shared
+      default: false
+    untrusted_net_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: untrusted_net_name
+      type: string
+      description: Name of public untrusted network into which this vDBE HA cluster is deployed
+    vdbe_oam_mac_1:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: vdbe_oam_mac_1
+      type: string
+      description: MAC address of the secondary vDBE VM on the OAM network
+    vdbe_oam_mac_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: vdbe_oam_mac_0
+      type: string
+      description: MAC address of the primary vDBE VM on the OAM network
+    vf_module_id:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: vf_module_id
+      type: string
+      description: Unique ID for this VF module inst
+    vdbe_hw_trst_mac_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: vdbe_hw_trst_mac_0
+      type: string
+      description: Secondary MAC address of the primary vDBE VM on the VAN trusted network
+    vdbe_hw_trst_mac_1:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: vdbe_hw_trst_mac_1
+      type: string
+      description: Secondary MAC address of the secondary vDBE VM on the VAN trusted network
+    vdbe_untrusted_ip_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: vdbe_untrusted_ip_0
+      type: string
+      description: IPV4 address of the primary vDBE VM on the VAN untrusted network
+    vnf_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: vnf_name
+      type: string
+      description: Unique name for this VF instance
+    vdbe_aap_sec_trusted_ip_prefix:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: vdbe_aap_sec_trusted_ip_prefix
+      type: string
+      description: ip prefix for the secondary vDBE VM aap on the VAN trusted network
+    vdbe_untrusted_ip_1:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: vdbe_untrusted_ip_1
+      type: string
+      description: IPV4 address of the secondary vDBE VM on the VAN untrusted network
+    vdbe_aap_trusted_ip_prefix_len:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: vdbe_aap_trusted_ip_prefix_len
+      type: string
+      description: ip prefix length for the primary vDBE VM on the VAN trusted network
+      default: '0'
+    aap_address_mode:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: aap_address_mode
+      type: string
+      description: Address mode for the vDBE cluster IP
+      default: active-standby
+    vdbe_untrusted_v6_ip_1:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: vdbe_untrusted_v6_ip_1
+      type: string
+      description: IPV6 address of the secondary vDBE VM on the VAN untrusted network
+    vdbe_untrusted_v6_ip_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: vdbe_untrusted_v6_ip_0
+      type: string
+      description: IPV6 address of the primary vDBE VM on the VAN untrusted network
+    vdbe_untrusted_vmac_address:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: vdbe_untrusted_vmac_address
+      type: string
+      description: Virtual MAC of the primary vDBE VM on the VAN untrusted network
+    vdbe_aap_sec_untrusted_ip_prefix:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: vdbe_aap_sec_untrusted_ip_prefix
+      type: string
+      description: ip prefix for secondary vDBE VM aap on the VAN untrusted network
+    vnf_id:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: vnf_id
+      type: string
+      description: Unique ID for this VF inst
+    vdbe_name_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: vdbe_name_0
+      type: string
+      description: VM Name for this vdbe node 0
+    availability_zone_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: availability_zone_0
+      type: string
+      description: The availability zone of primary node0 vDBE vm in the local HA pair.
+      default: novadpdk1
+    vdbe_name_1:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: vdbe_name_1
+      type: string
+      description: VM Name for this vdbe node 1
+    availability_zone_1:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: availability_zone_1
+      type: string
+      description: The availability zone of secondary node1 vDBE vm in the local HA pair.
+      default: novadpdk2
+    untrusted_vn_networks:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: untrusted_vn_networks
+      type: list
+      description: List of subinterface virtual networks
+      entry_schema:
+        type: string
+    vdbe_aap_sec_untrusted_ip_prefix_len:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: vdbe_aap_sec_untrusted_ip_prefix_len
+      type: string
+      description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network
+    vdbe_aap_untrusted_v6_ip_prefix:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: vdbe_aap_untrusted_v6_ip_prefix
+      type: string
+      description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network
+    fabric_int_net_flood_unknown_unicast:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: fabric_int_net_flood_unknown_unicast
+      type: boolean
+      description: forwarding mode of the fabric virtual network
+      default: true
+    untrusted_vlan_tags:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: untrusted_vlan_tags
+      type: list
+      description: List of subinterface vlan tags
+      entry_schema:
+        type: string
+    untr_network_collection_function:
+      type: string
+      required: true
+    untr_vfc_instance_group_function:
+      type: string
+      required: true
+    vdbe_control_ip_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: vdbe_control_ip_0
+      type: string
+      description: IP address of the primary vDBE VM on the HA control network
+    vdbe_control_ip_1:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: vdbe_control_ip_1
+      type: string
+      description: IP address of the secondary vDBE VM on the HA control network
+    vdbe_aap_trusted_v6_ip_prefix_len:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: vdbe_aap_trusted_v6_ip_prefix_len
+      type: string
+      description: ipv6 prefix length for the primary vDBE VM on the VAN trusted network
+      default: '0'
+    fabric_subnet_cidr:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: fabric_subnet_cidr
+      type: string
+      description: fabric subnet CIDR
+    vdbe_hw_untr_mac_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: vdbe_hw_untr_mac_0
+      type: string
+      description: Secondary MAC address of the primary vDBE VM on the VAN untrusted network
+    vdbe_hw_untr_mac_1:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: vdbe_hw_untr_mac_1
+      type: string
+      description: Secondary MAC address of the secondary vDBE VM on the VAN untrusted network
+    trusted_net_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: trusted_net_name
+      type: string
+      description: Name of public trusted network into which this vDBE HA cluster is deployed
+    vdbe_trusted_v6_ip_1:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: vdbe_trusted_v6_ip_1
+      type: string
+      description: IPV6 address of the secondary vDBE VM on the VAN trusted network
+    vdbe_aap_trusted_v6_ip_prefix:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: vdbe_aap_trusted_v6_ip_prefix
+      type: string
+      description: ipv6 prefix for the primary vDBE VM on the VAN trusted network
+      default: '::'
+    vdbe_trusted_v6_ip_0:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: vdbe_trusted_v6_ip_0
+      type: string
+      description: IPV6 address of the primary vDBE VM on the VAN trusted network
+    vdbe_device_name:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: vdbe_device_name
+      type: string
+      description: VDBE device Name for this vdbe VNF
+    vdbe_aap_untrusted_ip_prefix:
+      hidden: false
+      immutable: false
+      annotations:
+        source:
+          type: org.openecomp.annotations.Source
+          properties:
+            vf_module_label:
+            - vdbeav_base_heat_template
+            source_type: HEAT
+            param_name: vdbe_aap_untrusted_ip_prefix
+      type: string
+      description: ip prefix for primary vDBE VM on the VAN untrusted network
+  node_templates:
+    fabric_int_net:
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork
+      properties:
+        network_name:
+          str_replace:
+            template: VNF_NAME_fabric_net
+            params:
+              VNF_NAME:
+                get_input: vnf_name
+        subnets:
+          fabric_subnet:
+            name:
+              str_replace:
+                template: VNF_NAME_fabric_subnet
+                params:
+                  VNF_NAME:
+                    get_input: vnf_name
+            cidr:
+              get_input: fabric_subnet_cidr
+    control_int_net:
+      type: org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork
+      properties:
+        network_name:
+          str_replace:
+            template: VNF_NAME_control_net
+            params:
+              VNF_NAME:
+                get_input: vnf_name
+        subnets:
+          control_subnet:
+            name:
+              str_replace:
+                template: VNF_NAME_control_subnet
+                params:
+                  VNF_NAME:
+                    get_input: vnf_name
+            cidr:
+              get_input: control_subnet_cidr
+    abstract_vdbe_1:
+      type: org.openecomp.resource.abstract.nodes.vdbe_1
+      directives:
+      - substitutable
+      properties:
+        subinterface_vdbeav_subinterface_heat_template_aap_address_mode:
+        - get_input: aap_address_mode
+        compute_vdbe_availability_zone:
+        - get_input: availability_zone_1
+        vm_flavor_name:
+          get_input: vdbe_flavor_name
+        port_vdbe_oam_1_port_name:
+        - str_replace:
+            template: VM_NAMEDBE001p1n001
+            params:
+              DBE:
+                get_input: vdbe_device_name
+              VM_NAME:
+                get_input: vdbe_name_1
+        port_vdbe_trst_1_port_virtual_network_refs:
+        - - get_input: trusted_net_name
+        vm_image_name:
+          get_input: vdbe_image_name
+        compute_vdbe_metadata:
+        - vf_module_id:
+            get_input: vf_module_id
+          vnf_id:
+            get_input: vnf_id
+          vnf_name:
+            get_input: vnf_name
+        subinterface_vdbeav_subinterface_heat_template_aap_sec_untrusted_ip_prefix_len:
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix_len
+        port_vdbe_fabr_1_port_name:
+        - str_replace:
+            template: VM_NAMEDBE001p1n003
+            params:
+              DBE:
+                get_input: vdbe_device_name
+              VM_NAME:
+                get_input: vdbe_name_1
+        subinterface_vdbeav_subinterface_heat_template_parent_interface:
+        - vdbe_1_untr_vmi_1
+        subinterface_vdbeav_subinterface_heat_template_aap_untrusted_ip_prefix:
+        - get_input: vdbe_aap_untrusted_ip_prefix
+        subinterface_vdbeav_subinterface_heat_template_vlan_tag_list:
+        - get_input: untrusted_vlan_tags
+        port_vdbe_fabr_1_port_virtual_network_refs:
+        - - fabric_int_net
+        subinterface_vdbeav_subinterface_heat_template_vn_network_list:
+        - get_input: untrusted_vn_networks
+        subinterface_vdbeav_subinterface_heat_template_subinterfaces_name_prefix:
+        - str_replace:
+            template: VM_NAMEDBE001p1n004
+            params:
+              DBE:
+                get_input: vdbe_device_name
+              VM_NAME:
+                get_input: vdbe_name_1
+        port_vdbe_untr_vmi_name:
+        - str_replace:
+            template: VM_NAMEDBE001p1n004
+            params:
+              DBE:
+                get_input: vdbe_device_name
+              VM_NAME:
+                get_input: vdbe_name_1
+        subinterface_vdbeav_subinterface_heat_template_aap_untrusted_ip_prefix_len:
+        - get_input: vdbe_aap_untrusted_ip_prefix_len
+        compute_vdbe_name:
+        - get_input: vdbe_name_1
+        subinterface_vdbeav_subinterface_heat_template_service_template_filter_count:
+        - get_input: untrusted_num_vn
+        subinterface_vdbeav_subinterface_heat_template_mac_address:
+        - get_input: vdbe_hw_untr_mac_1
+        subinterface_vdbeav_subinterface_heat_template_ip_address:
+        - get_input: vdbe_untrusted_ip_1
+        subinterface_vdbeav_subinterface_heat_template_vmac_address:
+        - get_input: vdbe_untrusted_vmac_address
+        port_vdbe_untr_vmi_virtual_machine_interface_mac_addresses:
+        - - get_input: vdbe_hw_untr_mac_1
+        port_vdbe_ctrl_1_port_name:
+        - str_replace:
+            template: VM_NAMEDBE001p1n002
+            params:
+              DBE:
+                get_input: vdbe_device_name
+              VM_NAME:
+                get_input: vdbe_name_1
+        compute_vdbe_scheduler_hints:
+        - group: vdbe_ServerGroup_group
+        subinterface_vdbeav_subinterface_heat_template_aap_untrusted_v6_ip_prefix_len:
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix_len
+        port_vdbe_untr_vmi_virtual_network_refs:
+        - - get_input: untrusted_net_name
+        port_vdbe_trst_1_port_virtual_machine_interface_mac_addresses:
+        - - get_input: vdbe_hw_trst_mac_1
+        subinterface_vdbeav_subinterface_heat_template_aap_sec_untrusted_ip_prefix:
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix
+        port_vdbe_oam_1_port_virtual_network_refs:
+        - - get_input: oam_net_name
+        port_vdbe_ctrl_1_port_virtual_network_refs:
+        - - control_int_net
+        subinterface_vdbeav_subinterface_heat_template_aap_untrusted_v6_ip_prefix:
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix
+        subinterface_vdbeav_subinterface_heat_template_ip_v6_address:
+        - get_input: vdbe_untrusted_v6_ip_1
+        port_vdbe_oam_1_port_virtual_machine_interface_mac_addresses:
+        - - get_input: vdbe_oam_mac_1
+        port_vdbe_trst_1_port_name:
+        - str_replace:
+            template: VM_NAMEDBE001p1n005
+            params:
+              DBE:
+                get_input: vdbe_device_name
+              VM_NAME:
+                get_input: vdbe_name_1
+        service_template_filter:
+          substitute_service_template: Nested_vdbe_1ServiceTemplate.yaml
+          count: 1
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+      requirements:
+      - link_vdbe_vdbe_ctrl_1_port:
+          capability: tosca.capabilities.network.Linkable
+          node: control_int_net
+          relationship: tosca.relationships.network.LinksTo
+      - link_vdbe_vdbe_fabr_1_port:
+          capability: tosca.capabilities.network.Linkable
+          node: fabric_int_net
+          relationship: tosca.relationships.network.LinksTo
+    abstract_vdbe:
+      type: org.openecomp.resource.abstract.nodes.vdbe
+      directives:
+      - substitutable
+      properties:
+        subinterface_vdbeav_subinterface_heat_template_aap_address_mode:
+        - get_input: aap_address_mode
+        port_vdbe_trst_0_port_virtual_machine_interface_mac_addresses:
+        - - get_input: vdbe_hw_trst_mac_0
+        compute_vdbe_availability_zone:
+        - get_input: availability_zone_0
+        vm_flavor_name:
+          get_input: vdbe_flavor_name
+        vm_image_name:
+          get_input: vdbe_image_name
+        compute_vdbe_metadata:
+        - vf_module_id:
+            get_input: vf_module_id
+          vnf_id:
+            get_input: vnf_id
+          vnf_name:
+            get_input: vnf_name
+        subinterface_vdbeav_subinterface_heat_template_aap_sec_untrusted_ip_prefix_len:
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix_len
+        port_vdbe_oam_0_port_virtual_network_refs:
+        - - get_input: oam_net_name
+        port_vdbe_trst_0_port_name:
+        - str_replace:
+            template: VM_NAMEDBE001p1n005
+            params:
+              DBE:
+                get_input: vdbe_device_name
+              VM_NAME:
+                get_input: vdbe_name_0
+        subinterface_vdbeav_subinterface_heat_template_parent_interface:
+        - vdbe_0_untr_vmi_0
+        subinterface_vdbeav_subinterface_heat_template_aap_untrusted_ip_prefix:
+        - get_input: vdbe_aap_untrusted_ip_prefix
+        subinterface_vdbeav_subinterface_heat_template_vlan_tag_list:
+        - get_input: untrusted_vlan_tags
+        subinterface_vdbeav_subinterface_heat_template_vn_network_list:
+        - get_input: untrusted_vn_networks
+        subinterface_vdbeav_subinterface_heat_template_subinterfaces_name_prefix:
+        - str_replace:
+            template: VM_NAMEDBE001p1n004
+            params:
+              DBE:
+                get_input: vdbe_device_name
+              VM_NAME:
+                get_input: vdbe_name_0
+        port_vdbe_untr_vmi_name:
+        - str_replace:
+            template: VM_NAMEDBE001p1n004
+            params:
+              DBE:
+                get_input: vdbe_device_name
+              VM_NAME:
+                get_input: vdbe_name_0
+        subinterface_vdbeav_subinterface_heat_template_aap_untrusted_ip_prefix_len:
+        - get_input: vdbe_aap_untrusted_ip_prefix_len
+        port_vdbe_fabr_0_port_virtual_network_refs:
+        - - fabric_int_net
+        compute_vdbe_name:
+        - get_input: vdbe_name_0
+        subinterface_vdbeav_subinterface_heat_template_service_template_filter_count:
+        - get_input: untrusted_num_vn
+        subinterface_vdbeav_subinterface_heat_template_mac_address:
+        - get_input: vdbe_hw_untr_mac_0
+        subinterface_vdbeav_subinterface_heat_template_ip_address:
+        - get_input: vdbe_untrusted_ip_0
+        subinterface_vdbeav_subinterface_heat_template_vmac_address:
+        - get_input: vdbe_untrusted_vmac_address
+        port_vdbe_untr_vmi_virtual_machine_interface_mac_addresses:
+        - - get_input: vdbe_hw_untr_mac_0
+        compute_vdbe_scheduler_hints:
+        - group: vdbe_ServerGroup_group
+        subinterface_vdbeav_subinterface_heat_template_aap_untrusted_v6_ip_prefix_len:
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix_len
+        port_vdbe_untr_vmi_virtual_network_refs:
+        - - get_input: untrusted_net_name
+        port_vdbe_oam_0_port_name:
+        - str_replace:
+            template: VM_NAMEDBE001p1n001
+            params:
+              DBE:
+                get_input: vdbe_device_name
+              VM_NAME:
+                get_input: vdbe_name_0
+        subinterface_vdbeav_subinterface_heat_template_aap_sec_untrusted_ip_prefix:
+        - get_input: vdbe_aap_sec_untrusted_ip_prefix
+        port_vdbe_oam_0_port_virtual_machine_interface_mac_addresses:
+        - - get_input: vdbe_oam_mac_0
+        subinterface_vdbeav_subinterface_heat_template_aap_untrusted_v6_ip_prefix:
+        - get_input: vdbe_aap_untrusted_v6_ip_prefix
+        port_vdbe_fabr_0_port_name:
+        - str_replace:
+            template: VM_NAMEDBE001p1n003
+            params:
+              DBE:
+                get_input: vdbe_device_name
+              VM_NAME:
+                get_input: vdbe_name_0
+        port_vdbe_ctrl_0_port_name:
+        - str_replace:
+            template: VM_NAMEDBE001p1n002
+            params:
+              DBE:
+                get_input: vdbe_device_name
+              VM_NAME:
+                get_input: vdbe_name_0
+        subinterface_vdbeav_subinterface_heat_template_ip_v6_address:
+        - get_input: vdbe_untrusted_v6_ip_0
+        port_vdbe_ctrl_0_port_virtual_network_refs:
+        - - control_int_net
+        port_vdbe_trst_0_port_virtual_network_refs:
+        - - get_input: trusted_net_name
+        service_template_filter:
+          substitute_service_template: Nested_vdbeServiceTemplate.yaml
+          count: 1
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+      requirements:
+      - link_vdbe_vdbe_ctrl_0_port:
+          capability: tosca.capabilities.network.Linkable
+          node: control_int_net
+          relationship: tosca.relationships.network.LinksTo
+      - link_vdbe_vdbe_fabr_0_port:
+          capability: tosca.capabilities.network.Linkable
+          node: fabric_int_net
+          relationship: tosca.relationships.network.LinksTo
+  groups:
+    vdbe_ServerGroup_group:
+      type: tosca.groups.Root
+      members:
+      - abstract_vdbe
+      - abstract_vdbe_1
+    untr_group:
+      type: org.openecomp.groups.VfcInstanceGroup
+      properties:
+        vfc_parent_port_role: untr
+        network_collection_function:
+          get_input: untr_network_collection_function
+        vfc_instance_group_function:
+          get_input: untr_vfc_instance_group_function
+        subinterface_role: untr
+      members:
+      - abstract_vdbe
+      - abstract_vdbe_1
+    vdbeav_base_heat_template_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/vdbeav_base_heat_template.yaml
+        description: HOT template to deploy a vDBE HA of type DBE-I, DBE-P, DBE-AFC, and DBE-V (non-trunkport) cluster into an existing tenant network and assign network interfaces to the vDBE
+      members:
+      - fabric_int_net
+      - control_int_net
+      - abstract_vdbe
+      - abstract_vdbe_1
+  policies:
+    vdbe_ServerGroup_policy:
+      type: org.openecomp.policies.placement.Antilocate
+      properties:
+        container_type: host
+      targets:
+      - vdbe_ServerGroup_group
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/vdbeav/out/Nested_vdbeServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/vdbeav/out/Nested_vdbeServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..6d67aae
--- /dev/null
@@ -0,0 +1,971 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Nested_vdbe
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+  org.openecomp.resource.vfc.compute.nodes.heat.vdbe:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+  inputs:
+    port_vdbe_untr_vmi_virtual_machine_interface_allowed_address_pairs:
+      type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs
+      required: true
+    subinterface_vdbeav_subinterface_heat_template_aap_address_mode:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_oam_0_port_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    port_vdbe_trst_0_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_vdbe_trst_0_port_virtual_machine_interface_mac_addresses:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    port_vdbe_fabr_0_port_network_role_tag:
+      type: string
+      required: true
+    port_vdbe_fabr_0_port_subnetpoolid:
+      type: string
+      required: true
+    compute_vdbe_availability_zone:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_trst_0_port_network_role_tag:
+      type: string
+      required: true
+    vm_flavor_name:
+      type: string
+      required: true
+    port_vdbe_ctrl_0_port_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    port_vdbe_trst_0_port_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    vm_image_name:
+      type: string
+      required: true
+    port_vdbe_oam_0_port_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    compute_vdbe_metadata:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    subinterface_vdbeav_subinterface_heat_template_aap_sec_untrusted_ip_prefix_len:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_oam_0_port_virtual_network_refs:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    port_vdbe_trst_0_port_name:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_untr_vmi_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    subinterface_vdbeav_subinterface_heat_template_parent_interface:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_ctrl_0_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_vdbe_ctrl_0_port_network_role_tag:
+      type: string
+      required: true
+    port_vdbe_ctrl_0_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    subinterface_vdbeav_subinterface_heat_template_aap_untrusted_ip_prefix:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_fabr_0_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    subinterface_vdbeav_subinterface_heat_template_vlan_tag_list:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    port_vdbe_fabr_0_port_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    port_vdbe_fabr_0_port_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    port_vdbe_untr_vmi_network_role:
+      type: string
+      required: true
+    port_vdbe_trst_0_port_order:
+      type: integer
+      required: true
+    port_vdbe_oam_0_port_network_role_tag:
+      type: string
+      required: true
+    subinterface_vdbeav_subinterface_heat_template_vn_network_list:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    subinterface_vdbeav_subinterface_heat_template_subinterfaces_name_prefix:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_trst_0_port_network_role:
+      type: string
+      required: true
+    port_vdbe_oam_0_port_subnetpoolid:
+      type: string
+      required: true
+    port_vdbe_ctrl_0_port_order:
+      type: integer
+      required: true
+    port_vdbe_ctrl_0_port_subnetpoolid:
+      type: string
+      required: true
+    port_vdbe_untr_vmi_name:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    subinterface_vdbeav_subinterface_heat_template_aap_untrusted_ip_prefix_len:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_fabr_0_port_virtual_network_refs:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    compute_vdbe_name:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_untr_vmi_subnetpoolid:
+      type: string
+      required: true
+    port_vdbe_oam_0_port_network_role:
+      type: string
+      required: true
+    port_vdbe_ctrl_0_port_network_role:
+      type: string
+      required: true
+    subinterface_vdbeav_subinterface_heat_template_service_template_filter_count:
+      type: list
+      required: true
+      entry_schema:
+        type: float
+    port_vdbe_trst_0_port_subnetpoolid:
+      type: string
+      required: true
+    port_vdbe_untr_vmi_network_role_tag:
+      type: string
+      required: true
+    subinterface_vdbeav_subinterface_heat_template_mac_address:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    subinterface_vdbeav_subinterface_heat_template_ip_address:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_trst_0_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_vdbe_fabr_0_port_network_role:
+      type: string
+      required: true
+    subinterface_vdbeav_subinterface_heat_template_vmac_address:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_untr_vmi_virtual_machine_interface_mac_addresses:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    compute_vdbe_scheduler_hints:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    port_vdbe_trst_0_port_virtual_machine_interface_allowed_address_pairs:
+      type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs
+      required: true
+    port_vdbe_ctrl_0_port_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    subinterface_vdbeav_subinterface_heat_template_aap_untrusted_v6_ip_prefix_len:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_oam_0_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_vdbe_untr_vmi_virtual_network_refs:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    port_vdbe_untr_vmi_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    port_vdbe_fabr_0_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_vdbe_trst_0_port_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    port_vdbe_untr_vmi_order:
+      type: integer
+      required: true
+    port_vdbe_oam_0_port_name:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    subinterface_vdbeav_subinterface_heat_template_aap_sec_untrusted_ip_prefix:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_oam_0_port_virtual_machine_interface_mac_addresses:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    index_value:
+      type: integer
+      description: Index value of this substitution service template runtime instance
+      required: false
+      default: 0
+      constraints:
+      - greater_or_equal: 0
+    port_vdbe_untr_vmi_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    subinterface_vdbeav_subinterface_heat_template_aap_untrusted_v6_ip_prefix:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_fabr_0_port_name:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_ctrl_0_port_name:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_fabr_0_port_order:
+      type: integer
+      required: true
+    subinterface_vdbeav_subinterface_heat_template_ip_v6_address:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_ctrl_0_port_virtual_network_refs:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    port_vdbe_oam_0_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_vdbe_trst_0_port_virtual_network_refs:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    port_vdbe_oam_0_port_order:
+      type: integer
+      required: true
+    port_vdbe_untr_vmi_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+  node_templates:
+    vdbe_vdbe_fabr_0_port:
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
+      properties:
+        exCP_naming:
+          get_input: port_vdbe_fabr_0_port_exCP_naming
+        vlan_requirements:
+          get_input: port_vdbe_fabr_0_port_vlan_requirements
+        subinterface_indicator: false
+        ip_requirements:
+          get_input: port_vdbe_fabr_0_port_ip_requirements
+        virtual_network_refs:
+          get_input:
+          - port_vdbe_fabr_0_port_virtual_network_refs
+          - index_value
+        network_role_tag:
+          get_input: port_vdbe_fabr_0_port_network_role_tag
+        mac_requirements:
+          get_input: port_vdbe_fabr_0_port_mac_requirements
+        order:
+          get_input: port_vdbe_fabr_0_port_order
+        network_role:
+          get_input: port_vdbe_fabr_0_port_network_role
+        subnetpoolid:
+          get_input: port_vdbe_fabr_0_port_subnetpoolid
+        name:
+          get_input:
+          - port_vdbe_fabr_0_port_name
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: vdbe
+          relationship: tosca.relationships.network.BindsTo
+    vdbe_vdbe_oam_0_port:
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
+      properties:
+        mac_requirements:
+          get_input: port_vdbe_oam_0_port_mac_requirements
+        order:
+          get_input: port_vdbe_oam_0_port_order
+        exCP_naming:
+          get_input: port_vdbe_oam_0_port_exCP_naming
+        vlan_requirements:
+          get_input: port_vdbe_oam_0_port_vlan_requirements
+        subinterface_indicator: false
+        virtual_network_refs:
+          get_input:
+          - port_vdbe_oam_0_port_virtual_network_refs
+          - index_value
+        ip_requirements:
+          get_input: port_vdbe_oam_0_port_ip_requirements
+        network_role_tag:
+          get_input: port_vdbe_oam_0_port_network_role_tag
+        virtual_machine_interface_mac_addresses:
+          get_input:
+          - port_vdbe_oam_0_port_virtual_machine_interface_mac_addresses
+          - index_value
+        network_role:
+          get_input: port_vdbe_oam_0_port_network_role
+        subnetpoolid:
+          get_input: port_vdbe_oam_0_port_subnetpoolid
+        name:
+          get_input:
+          - port_vdbe_oam_0_port_name
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: vdbe
+          relationship: tosca.relationships.network.BindsTo
+    vdbe_vdbe_trst_0_port:
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
+      properties:
+        mac_requirements:
+          get_input: port_vdbe_trst_0_port_mac_requirements
+        order:
+          get_input: port_vdbe_trst_0_port_order
+        exCP_naming:
+          get_input: port_vdbe_trst_0_port_exCP_naming
+        virtual_machine_interface_allowed_address_pairs:
+          get_input:
+          - port_vdbe_trst_0_port_virtual_machine_interface_allowed_address_pairs
+          - index_value
+        vlan_requirements:
+          get_input: port_vdbe_trst_0_port_vlan_requirements
+        subinterface_indicator: false
+        virtual_network_refs:
+          get_input:
+          - port_vdbe_trst_0_port_virtual_network_refs
+          - index_value
+        ip_requirements:
+          get_input: port_vdbe_trst_0_port_ip_requirements
+        network_role_tag:
+          get_input: port_vdbe_trst_0_port_network_role_tag
+        virtual_machine_interface_mac_addresses:
+          get_input:
+          - port_vdbe_trst_0_port_virtual_machine_interface_mac_addresses
+          - index_value
+        network_role:
+          get_input: port_vdbe_trst_0_port_network_role
+        subnetpoolid:
+          get_input: port_vdbe_trst_0_port_subnetpoolid
+        name:
+          get_input:
+          - port_vdbe_trst_0_port_name
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: vdbe
+          relationship: tosca.relationships.network.BindsTo
+    vdbe:
+      type: org.openecomp.resource.vfc.compute.nodes.heat.vdbe
+      properties:
+        availability_zone:
+          get_input:
+          - compute_vdbe_availability_zone
+          - index_value
+        flavor:
+          get_input: vm_flavor_name
+        metadata:
+          get_input:
+          - compute_vdbe_metadata
+          - index_value
+        image:
+          get_input: vm_image_name
+        name:
+          get_input:
+          - compute_vdbe_name
+          - index_value
+        scheduler_hints:
+          get_input:
+          - compute_vdbe_scheduler_hints
+          - index_value
+    vdbe_vdbe_untr_vmi:
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
+      properties:
+        mac_requirements:
+          get_input: port_vdbe_untr_vmi_mac_requirements
+        order:
+          get_input: port_vdbe_untr_vmi_order
+        exCP_naming:
+          get_input: port_vdbe_untr_vmi_exCP_naming
+        virtual_machine_interface_allowed_address_pairs:
+          get_input:
+          - port_vdbe_untr_vmi_virtual_machine_interface_allowed_address_pairs
+          - index_value
+        vlan_requirements:
+          get_input: port_vdbe_untr_vmi_vlan_requirements
+        subinterface_indicator: true
+        virtual_network_refs:
+          get_input:
+          - port_vdbe_untr_vmi_virtual_network_refs
+          - index_value
+        ip_requirements:
+          get_input: port_vdbe_untr_vmi_ip_requirements
+        network_role_tag:
+          get_input: port_vdbe_untr_vmi_network_role_tag
+        virtual_machine_interface_mac_addresses:
+          get_input:
+          - port_vdbe_untr_vmi_virtual_machine_interface_mac_addresses
+          - index_value
+        network_role:
+          get_input: port_vdbe_untr_vmi_network_role
+        subnetpoolid:
+          get_input: port_vdbe_untr_vmi_subnetpoolid
+        name:
+          get_input:
+          - port_vdbe_untr_vmi_name
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: vdbe
+          relationship: tosca.relationships.network.BindsTo
+    vdbe_vdbe_ctrl_0_port:
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
+      properties:
+        exCP_naming:
+          get_input: port_vdbe_ctrl_0_port_exCP_naming
+        vlan_requirements:
+          get_input: port_vdbe_ctrl_0_port_vlan_requirements
+        subinterface_indicator: false
+        ip_requirements:
+          get_input: port_vdbe_ctrl_0_port_ip_requirements
+        virtual_network_refs:
+          get_input:
+          - port_vdbe_ctrl_0_port_virtual_network_refs
+          - index_value
+        network_role_tag:
+          get_input: port_vdbe_ctrl_0_port_network_role_tag
+        mac_requirements:
+          get_input: port_vdbe_ctrl_0_port_mac_requirements
+        order:
+          get_input: port_vdbe_ctrl_0_port_order
+        network_role:
+          get_input: port_vdbe_ctrl_0_port_network_role
+        subnetpoolid:
+          get_input: port_vdbe_ctrl_0_port_subnetpoolid
+        name:
+          get_input:
+          - port_vdbe_ctrl_0_port_name
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: vdbe
+          relationship: tosca.relationships.network.BindsTo
+    vdbe_vdbe_untr_vmi_vdbeav_subinterface_heat_template:
+      type: org.openecomp.resource.abstract.nodes.heat.subinterface.vdbeav_subinterface_heat_template
+      directives:
+      - substitutable
+      properties:
+        aap_untrusted_ip_prefix:
+          get_input:
+          - subinterface_vdbeav_subinterface_heat_template_aap_untrusted_ip_prefix
+          - index_value
+        aap_sec_untrusted_ip_prefix:
+          get_input:
+          - subinterface_vdbeav_subinterface_heat_template_aap_sec_untrusted_ip_prefix
+          - index_value
+        ip_v6_address:
+          get_input:
+          - subinterface_vdbeav_subinterface_heat_template_ip_v6_address
+          - index_value
+        counter:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+        ip_address:
+          get_input:
+          - subinterface_vdbeav_subinterface_heat_template_ip_address
+          - index_value
+        subinterfaces_name_prefix:
+          get_input:
+          - subinterface_vdbeav_subinterface_heat_template_subinterfaces_name_prefix
+          - index_value
+        aap_address_mode:
+          get_input:
+          - subinterface_vdbeav_subinterface_heat_template_aap_address_mode
+          - index_value
+        service_template_filter:
+          count:
+            get_input:
+            - subinterface_vdbeav_subinterface_heat_template_service_template_filter_count
+            - index_value
+          substitute_service_template: vdbeav_subinterface_heat_templateServiceTemplate.yaml
+          mandatory: false
+        aap_untrusted_v6_ip_prefix:
+          get_input:
+          - subinterface_vdbeav_subinterface_heat_template_aap_untrusted_v6_ip_prefix
+          - index_value
+        parent_interface:
+          get_input:
+          - subinterface_vdbeav_subinterface_heat_template_parent_interface
+          - index_value
+        vn_network_list:
+          get_input:
+          - subinterface_vdbeav_subinterface_heat_template_vn_network_list
+          - index_value
+        mac_address:
+          get_input:
+          - subinterface_vdbeav_subinterface_heat_template_mac_address
+          - index_value
+        vlan_tag_list:
+          get_input:
+          - subinterface_vdbeav_subinterface_heat_template_vlan_tag_list
+          - index_value
+        aap_sec_untrusted_ip_prefix_len:
+          get_input:
+          - subinterface_vdbeav_subinterface_heat_template_aap_sec_untrusted_ip_prefix_len
+          - index_value
+        vmac_address:
+          get_input:
+          - subinterface_vdbeav_subinterface_heat_template_vmac_address
+          - index_value
+        aap_untrusted_v6_ip_prefix_len:
+          get_input:
+          - subinterface_vdbeav_subinterface_heat_template_aap_untrusted_v6_ip_prefix_len
+          - index_value
+        aap_untrusted_ip_prefix_len:
+          get_input:
+          - subinterface_vdbeav_subinterface_heat_template_aap_untrusted_ip_prefix_len
+          - index_value
+      requirements:
+      - binding_vdbe_0_subint_untr_vmi_0:
+          capability: tosca.capabilities.network.Bindable
+          node: vdbe_vdbe_untr_vmi
+          relationship: tosca.relationships.network.BindsTo
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.vdbe
+    capabilities:
+      network.incoming.packets.rate_vdbe_vdbe_untr_vmi:
+      - vdbe_vdbe_untr_vmi
+      - network.incoming.packets.rate
+      network.incoming.packets_vdbe_vdbe_trst_0_port:
+      - vdbe_vdbe_trst_0_port
+      - network.incoming.packets
+      feature_vdbe:
+      - vdbe
+      - feature
+      network.outgoing.packets.rate_vdbe_vdbe_ctrl_0_port:
+      - vdbe_vdbe_ctrl_0_port
+      - network.outgoing.packets.rate
+      network.outpoing.packets_vdbe_vdbe_fabr_0_port:
+      - vdbe_vdbe_fabr_0_port
+      - network.outpoing.packets
+      disk.device.iops_vdbe:
+      - vdbe
+      - disk.device.iops
+      network.incoming.packets.rate_vdbe_vdbe_fabr_0_port:
+      - vdbe_vdbe_fabr_0_port
+      - network.incoming.packets.rate
+      network.incoming.bytes.rate_vdbe_vdbe_fabr_0_port:
+      - vdbe_vdbe_fabr_0_port
+      - network.incoming.bytes.rate
+      endpoint_vdbe:
+      - vdbe
+      - endpoint
+      network.incoming.packets.rate_vdbe_vdbe_ctrl_0_port:
+      - vdbe_vdbe_ctrl_0_port
+      - network.incoming.packets.rate
+      network.incoming.bytes.rate_vdbe_vdbe_ctrl_0_port:
+      - vdbe_vdbe_ctrl_0_port
+      - network.incoming.bytes.rate
+      cpu_util_vdbe:
+      - vdbe
+      - cpu_util
+      vcpus_vdbe:
+      - vdbe
+      - vcpus
+      disk.write.requests_vdbe:
+      - vdbe
+      - disk.write.requests
+      network.outgoing.packets.rate_vdbe_vdbe_fabr_0_port:
+      - vdbe_vdbe_fabr_0_port
+      - network.outgoing.packets.rate
+      network.outpoing.packets_vdbe_vdbe_ctrl_0_port:
+      - vdbe_vdbe_ctrl_0_port
+      - network.outpoing.packets
+      disk.device.latency_vdbe:
+      - vdbe
+      - disk.device.latency
+      scalable_vdbe:
+      - vdbe
+      - scalable
+      disk.iops_vdbe:
+      - vdbe
+      - disk.iops
+      network.incoming.bytes_vdbe_vdbe_ctrl_0_port:
+      - vdbe_vdbe_ctrl_0_port
+      - network.incoming.bytes
+      disk.device.allocation_vdbe:
+      - vdbe
+      - disk.device.allocation
+      network.outgoing.bytes.rate_vdbe_vdbe_fabr_0_port:
+      - vdbe_vdbe_fabr_0_port
+      - network.outgoing.bytes.rate
+      binding_vdbe_vdbe_oam_0_port:
+      - vdbe_vdbe_oam_0_port
+      - binding
+      feature_vdbe_vdbe_oam_0_port:
+      - vdbe_vdbe_oam_0_port
+      - feature
+      instance_vdbe:
+      - vdbe
+      - instance
+      network.incoming.packets_vdbe_vdbe_oam_0_port:
+      - vdbe_vdbe_oam_0_port
+      - network.incoming.packets
+      memory.resident_vdbe:
+      - vdbe
+      - memory.resident
+      network.outpoing.packets_vdbe_vdbe_trst_0_port:
+      - vdbe_vdbe_trst_0_port
+      - network.outpoing.packets
+      network.incoming.bytes.rate_vdbe_vdbe_untr_vmi:
+      - vdbe_vdbe_untr_vmi
+      - network.incoming.bytes.rate
+      cpu_vdbe:
+      - vdbe
+      - cpu
+      network.outgoing.bytes.rate_vdbe_vdbe_oam_0_port:
+      - vdbe_vdbe_oam_0_port
+      - network.outgoing.bytes.rate
+      disk.write.bytes_vdbe:
+      - vdbe
+      - disk.write.bytes
+      feature_vdbe_vdbe_ctrl_0_port:
+      - vdbe_vdbe_ctrl_0_port
+      - feature
+      disk.latency_vdbe:
+      - vdbe
+      - disk.latency
+      network.outgoing.bytes.rate_vdbe_vdbe_trst_0_port:
+      - vdbe_vdbe_trst_0_port
+      - network.outgoing.bytes.rate
+      feature_vdbe_0_subint_untr_vmi_0_vdbe_vdbe_untr_vmi_vdbeav_subinterface_heat_template:
+      - vdbe_vdbe_untr_vmi_vdbeav_subinterface_heat_template
+      - feature_vdbe_0_subint_untr_vmi_0
+      network.outgoing.bytes.rate_vdbe_vdbe_untr_vmi:
+      - vdbe_vdbe_untr_vmi
+      - network.outgoing.bytes.rate
+      network.outgoing.bytes_vdbe_vdbe_trst_0_port:
+      - vdbe_vdbe_trst_0_port
+      - network.outgoing.bytes
+      disk.allocation_vdbe:
+      - vdbe
+      - disk.allocation
+      disk.read.bytes.rate_vdbe:
+      - vdbe
+      - disk.read.bytes.rate
+      network.outgoing.bytes_vdbe_vdbe_fabr_0_port:
+      - vdbe_vdbe_fabr_0_port
+      - network.outgoing.bytes
+      network.outgoing.bytes_vdbe_vdbe_oam_0_port:
+      - vdbe_vdbe_oam_0_port
+      - network.outgoing.bytes
+      os_vdbe:
+      - vdbe
+      - os
+      forwarder_vdbe_vdbe_untr_vmi:
+      - vdbe_vdbe_untr_vmi
+      - forwarder
+      network.incoming.packets.rate_vdbe_vdbe_trst_0_port:
+      - vdbe_vdbe_trst_0_port
+      - network.incoming.packets.rate
+      network.incoming.bytes.rate_vdbe_vdbe_trst_0_port:
+      - vdbe_vdbe_trst_0_port
+      - network.incoming.bytes.rate
+      forwarder_vdbe_vdbe_ctrl_0_port:
+      - vdbe_vdbe_ctrl_0_port
+      - forwarder
+      disk.root.size_vdbe:
+      - vdbe
+      - disk.root.size
+      network.outgoing.packets.rate_vdbe_vdbe_trst_0_port:
+      - vdbe_vdbe_trst_0_port
+      - network.outgoing.packets.rate
+      network.incoming.packets_vdbe_vdbe_ctrl_0_port:
+      - vdbe_vdbe_ctrl_0_port
+      - network.incoming.packets
+      network.outgoing.bytes_vdbe_vdbe_untr_vmi:
+      - vdbe_vdbe_untr_vmi
+      - network.outgoing.bytes
+      memory_vdbe:
+      - vdbe
+      - memory
+      binding_vdbe:
+      - vdbe
+      - binding
+      disk.device.write.bytes_vdbe:
+      - vdbe
+      - disk.device.write.bytes
+      disk.device.read.requests.rate_vdbe:
+      - vdbe
+      - disk.device.read.requests.rate
+      disk.ephemeral.size_vdbe:
+      - vdbe
+      - disk.ephemeral.size
+      network.outpoing.packets_vdbe_vdbe_oam_0_port:
+      - vdbe_vdbe_oam_0_port
+      - network.outpoing.packets
+      feature_vdbe_vdbe_untr_vmi:
+      - vdbe_vdbe_untr_vmi
+      - feature
+      disk.device.write.requests.rate_vdbe:
+      - vdbe
+      - disk.device.write.requests.rate
+      network.incoming.bytes_vdbe_vdbe_oam_0_port:
+      - vdbe_vdbe_oam_0_port
+      - network.incoming.bytes
+      binding_vdbe_vdbe_ctrl_0_port:
+      - vdbe_vdbe_ctrl_0_port
+      - binding
+      feature_vdbe_vdbe_trst_0_port:
+      - vdbe_vdbe_trst_0_port
+      - feature
+      network.incoming.bytes.rate_vdbe_vdbe_oam_0_port:
+      - vdbe_vdbe_oam_0_port
+      - network.incoming.bytes.rate
+      disk.write.bytes.rate_vdbe:
+      - vdbe
+      - disk.write.bytes.rate
+      feature_vdbe_vdbe_untr_vmi_vdbeav_subinterface_heat_template:
+      - vdbe_vdbe_untr_vmi_vdbeav_subinterface_heat_template
+      - feature
+      disk.device.write.requests_vdbe:
+      - vdbe
+      - disk.device.write.requests
+      disk.device.capacity_vdbe:
+      - vdbe
+      - disk.device.capacity
+      disk.usage_vdbe:
+      - vdbe
+      - disk.usage
+      memory.usage_vdbe:
+      - vdbe
+      - memory.usage
+      disk.read.requests_vdbe:
+      - vdbe
+      - disk.read.requests
+      forwarder_vdbe_vdbe_oam_0_port:
+      - vdbe_vdbe_oam_0_port
+      - forwarder
+      network.outpoing.packets_vdbe_vdbe_untr_vmi:
+      - vdbe_vdbe_untr_vmi
+      - network.outpoing.packets
+      network.incoming.packets_vdbe_vdbe_fabr_0_port:
+      - vdbe_vdbe_fabr_0_port
+      - network.incoming.packets
+      cpu.delta_vdbe:
+      - vdbe
+      - cpu.delta
+      network.outgoing.bytes_vdbe_vdbe_ctrl_0_port:
+      - vdbe_vdbe_ctrl_0_port
+      - network.outgoing.bytes
+      disk.device.read.bytes.rate_vdbe:
+      - vdbe
+      - disk.device.read.bytes.rate
+      disk.device.write.bytes.rate_vdbe:
+      - vdbe
+      - disk.device.write.bytes.rate
+      network.incoming.packets_vdbe_vdbe_untr_vmi:
+      - vdbe_vdbe_untr_vmi
+      - network.incoming.packets
+      disk.write.requests.rate_vdbe:
+      - vdbe
+      - disk.write.requests.rate
+      binding_vdbe_vdbe_untr_vmi:
+      - vdbe_vdbe_untr_vmi
+      - binding
+      disk.device.usage_vdbe:
+      - vdbe
+      - disk.device.usage
+      network.outgoing.bytes.rate_vdbe_vdbe_ctrl_0_port:
+      - vdbe_vdbe_ctrl_0_port
+      - network.outgoing.bytes.rate
+      disk.device.read.bytes_vdbe:
+      - vdbe
+      - disk.device.read.bytes
+      forwarder_vdbe_vdbe_fabr_0_port:
+      - vdbe_vdbe_fabr_0_port
+      - forwarder
+      network.incoming.packets.rate_vdbe_vdbe_oam_0_port:
+      - vdbe_vdbe_oam_0_port
+      - network.incoming.packets.rate
+      network.incoming.bytes_vdbe_vdbe_trst_0_port:
+      - vdbe_vdbe_trst_0_port
+      - network.incoming.bytes
+      network.outgoing.packets.rate_vdbe_vdbe_oam_0_port:
+      - vdbe_vdbe_oam_0_port
+      - network.outgoing.packets.rate
+      binding_vdbe_vdbe_fabr_0_port:
+      - vdbe_vdbe_fabr_0_port
+      - binding
+      disk.capacity_vdbe:
+      - vdbe
+      - disk.capacity
+      host_vdbe:
+      - vdbe
+      - host
+      binding_vdbe_vdbe_trst_0_port:
+      - vdbe_vdbe_trst_0_port
+      - binding
+      network.outgoing.packets.rate_vdbe_vdbe_untr_vmi:
+      - vdbe_vdbe_untr_vmi
+      - network.outgoing.packets.rate
+      network.incoming.bytes_vdbe_vdbe_untr_vmi:
+      - vdbe_vdbe_untr_vmi
+      - network.incoming.bytes
+      feature_vdbe_vdbe_fabr_0_port:
+      - vdbe_vdbe_fabr_0_port
+      - feature
+      network.incoming.bytes_vdbe_vdbe_fabr_0_port:
+      - vdbe_vdbe_fabr_0_port
+      - network.incoming.bytes
+      forwarder_vdbe_vdbe_trst_0_port:
+      - vdbe_vdbe_trst_0_port
+      - forwarder
+      disk.device.read.requests_vdbe:
+      - vdbe
+      - disk.device.read.requests
+      disk.read.bytes_vdbe:
+      - vdbe
+      - disk.read.bytes
+    requirements:
+      link_vdbe_vdbe_ctrl_0_port:
+      - vdbe_vdbe_ctrl_0_port
+      - link
+      dependency_vdbe_vdbe_oam_0_port:
+      - vdbe_vdbe_oam_0_port
+      - dependency
+      link_vdbe_vdbe_trst_0_port:
+      - vdbe_vdbe_trst_0_port
+      - link
+      link_vdbe_vdbe_fabr_0_port:
+      - vdbe_vdbe_fabr_0_port
+      - link
+      local_storage_vdbe:
+      - vdbe
+      - local_storage
+      dependency_vdbe_vdbe_fabr_0_port:
+      - vdbe_vdbe_fabr_0_port
+      - dependency
+      link_vdbe_vdbe_oam_0_port:
+      - vdbe_vdbe_oam_0_port
+      - link
+      dependency_vdbe:
+      - vdbe
+      - dependency
+      dependency_vdbe_vdbe_ctrl_0_port:
+      - vdbe_vdbe_ctrl_0_port
+      - dependency
+      link_vdbe_vdbe_untr_vmi:
+      - vdbe_vdbe_untr_vmi
+      - link
+      dependency_vdbe_vdbe_untr_vmi_vdbeav_subinterface_heat_template:
+      - vdbe_vdbe_untr_vmi_vdbeav_subinterface_heat_template
+      - dependency
+      dependency_vdbe_vdbe_trst_0_port:
+      - vdbe_vdbe_trst_0_port
+      - dependency
+      dependency_vdbe_0_subint_untr_vmi_0_vdbe_vdbe_untr_vmi_vdbeav_subinterface_heat_template:
+      - vdbe_vdbe_untr_vmi_vdbeav_subinterface_heat_template
+      - dependency_vdbe_0_subint_untr_vmi_0
+      dependency_vdbe_vdbe_untr_vmi:
+      - vdbe_vdbe_untr_vmi
+      - dependency
+      subinterface_link_vdbe_0_subint_untr_vmi_0_vdbe_vdbe_untr_vmi_vdbeav_subinterface_heat_template:
+      - vdbe_vdbe_untr_vmi_vdbeav_subinterface_heat_template
+      - subinterface_link_vdbe_0_subint_untr_vmi_0
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/vdbeav/out/Nested_vdbe_1ServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/vdbeav/out/Nested_vdbe_1ServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..5c3fb09
--- /dev/null
@@ -0,0 +1,971 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: Nested_vdbe_1
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+node_types:
+  org.openecomp.resource.vfc.compute.nodes.heat.vdbe:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+topology_template:
+  inputs:
+    port_vdbe_untr_vmi_virtual_machine_interface_allowed_address_pairs:
+      type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs
+      required: true
+    subinterface_vdbeav_subinterface_heat_template_aap_address_mode:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_ctrl_1_port_order:
+      type: integer
+      required: true
+    compute_vdbe_availability_zone:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_ctrl_1_port_network_role:
+      type: string
+      required: true
+    vm_flavor_name:
+      type: string
+      required: true
+    port_vdbe_oam_1_port_name:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_fabr_1_port_order:
+      type: integer
+      required: true
+    port_vdbe_trst_1_port_virtual_network_refs:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    vm_image_name:
+      type: string
+      required: true
+    port_vdbe_trst_1_port_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    compute_vdbe_metadata:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    port_vdbe_fabr_1_port_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    subinterface_vdbeav_subinterface_heat_template_aap_sec_untrusted_ip_prefix_len:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_trst_1_port_network_role:
+      type: string
+      required: true
+    port_vdbe_untr_vmi_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_vdbe_fabr_1_port_name:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    subinterface_vdbeav_subinterface_heat_template_parent_interface:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_oam_1_port_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    port_vdbe_fabr_1_port_subnetpoolid:
+      type: string
+      required: true
+    subinterface_vdbeav_subinterface_heat_template_aap_untrusted_ip_prefix:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_oam_1_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    subinterface_vdbeav_subinterface_heat_template_vlan_tag_list:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    port_vdbe_oam_1_port_network_role:
+      type: string
+      required: true
+    port_vdbe_untr_vmi_network_role:
+      type: string
+      required: true
+    port_vdbe_fabr_1_port_virtual_network_refs:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    subinterface_vdbeav_subinterface_heat_template_vn_network_list:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    port_vdbe_trst_1_port_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    subinterface_vdbeav_subinterface_heat_template_subinterfaces_name_prefix:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_ctrl_1_port_subnetpoolid:
+      type: string
+      required: true
+    port_vdbe_oam_1_port_subnetpoolid:
+      type: string
+      required: true
+    port_vdbe_ctrl_1_port_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    port_vdbe_untr_vmi_name:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_trst_1_port_network_role_tag:
+      type: string
+      required: true
+    subinterface_vdbeav_subinterface_heat_template_aap_untrusted_ip_prefix_len:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    compute_vdbe_name:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_oam_1_port_network_role_tag:
+      type: string
+      required: true
+    port_vdbe_trst_1_port_order:
+      type: integer
+      required: true
+    port_vdbe_untr_vmi_subnetpoolid:
+      type: string
+      required: true
+    subinterface_vdbeav_subinterface_heat_template_service_template_filter_count:
+      type: list
+      required: true
+      entry_schema:
+        type: float
+    port_vdbe_untr_vmi_network_role_tag:
+      type: string
+      required: true
+    port_vdbe_fabr_1_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    subinterface_vdbeav_subinterface_heat_template_mac_address:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_fabr_1_port_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    subinterface_vdbeav_subinterface_heat_template_ip_address:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_trst_1_port_subnetpoolid:
+      type: string
+      required: true
+    port_vdbe_oam_1_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    subinterface_vdbeav_subinterface_heat_template_vmac_address:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_untr_vmi_virtual_machine_interface_mac_addresses:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    port_vdbe_ctrl_1_port_name:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_ctrl_1_port_network_role_tag:
+      type: string
+      required: true
+    compute_vdbe_scheduler_hints:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    port_vdbe_trst_1_port_virtual_machine_interface_allowed_address_pairs:
+      type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs
+      required: true
+    subinterface_vdbeav_subinterface_heat_template_aap_untrusted_v6_ip_prefix_len:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_untr_vmi_virtual_network_refs:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    port_vdbe_untr_vmi_mac_requirements:
+      type: org.openecomp.datatypes.network.MacRequirements
+      required: true
+    port_vdbe_fabr_1_port_network_role:
+      type: string
+      required: true
+    port_vdbe_trst_1_port_virtual_machine_interface_mac_addresses:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    port_vdbe_untr_vmi_order:
+      type: integer
+      required: true
+    subinterface_vdbeav_subinterface_heat_template_aap_sec_untrusted_ip_prefix:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_oam_1_port_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    index_value:
+      type: integer
+      description: Index value of this substitution service template runtime instance
+      required: false
+      default: 0
+      constraints:
+      - greater_or_equal: 0
+    port_vdbe_fabr_1_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_vdbe_oam_1_port_virtual_network_refs:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    port_vdbe_untr_vmi_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_vdbe_ctrl_1_port_virtual_network_refs:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    port_vdbe_oam_1_port_order:
+      type: integer
+      required: true
+    subinterface_vdbeav_subinterface_heat_template_aap_untrusted_v6_ip_prefix:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_trst_1_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_vdbe_ctrl_1_port_exCP_naming:
+      type: org.openecomp.datatypes.Naming
+      required: true
+    port_vdbe_fabr_1_port_network_role_tag:
+      type: string
+      required: true
+    port_vdbe_ctrl_1_port_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+    port_vdbe_ctrl_1_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    port_vdbe_trst_1_port_ip_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.IpRequirements
+    subinterface_vdbeav_subinterface_heat_template_ip_v6_address:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_oam_1_port_virtual_machine_interface_mac_addresses:
+      type: list
+      required: true
+      entry_schema:
+        type: json
+    port_vdbe_trst_1_port_name:
+      type: list
+      required: true
+      entry_schema:
+        type: string
+    port_vdbe_untr_vmi_vlan_requirements:
+      type: list
+      required: true
+      entry_schema:
+        type: org.openecomp.datatypes.network.VlanRequirements
+  node_templates:
+    vdbe:
+      type: org.openecomp.resource.vfc.compute.nodes.heat.vdbe
+      properties:
+        availability_zone:
+          get_input:
+          - compute_vdbe_availability_zone
+          - index_value
+        flavor:
+          get_input: vm_flavor_name
+        metadata:
+          get_input:
+          - compute_vdbe_metadata
+          - index_value
+        image:
+          get_input: vm_image_name
+        name:
+          get_input:
+          - compute_vdbe_name
+          - index_value
+        scheduler_hints:
+          get_input:
+          - compute_vdbe_scheduler_hints
+          - index_value
+    vdbe_vdbe_trst_1_port:
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
+      properties:
+        mac_requirements:
+          get_input: port_vdbe_trst_1_port_mac_requirements
+        order:
+          get_input: port_vdbe_trst_1_port_order
+        exCP_naming:
+          get_input: port_vdbe_trst_1_port_exCP_naming
+        virtual_machine_interface_allowed_address_pairs:
+          get_input:
+          - port_vdbe_trst_1_port_virtual_machine_interface_allowed_address_pairs
+          - index_value
+        vlan_requirements:
+          get_input: port_vdbe_trst_1_port_vlan_requirements
+        subinterface_indicator: false
+        virtual_network_refs:
+          get_input:
+          - port_vdbe_trst_1_port_virtual_network_refs
+          - index_value
+        ip_requirements:
+          get_input: port_vdbe_trst_1_port_ip_requirements
+        network_role_tag:
+          get_input: port_vdbe_trst_1_port_network_role_tag
+        virtual_machine_interface_mac_addresses:
+          get_input:
+          - port_vdbe_trst_1_port_virtual_machine_interface_mac_addresses
+          - index_value
+        network_role:
+          get_input: port_vdbe_trst_1_port_network_role
+        subnetpoolid:
+          get_input: port_vdbe_trst_1_port_subnetpoolid
+        name:
+          get_input:
+          - port_vdbe_trst_1_port_name
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: vdbe
+          relationship: tosca.relationships.network.BindsTo
+    vdbe_vdbe_oam_1_port:
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
+      properties:
+        mac_requirements:
+          get_input: port_vdbe_oam_1_port_mac_requirements
+        order:
+          get_input: port_vdbe_oam_1_port_order
+        exCP_naming:
+          get_input: port_vdbe_oam_1_port_exCP_naming
+        vlan_requirements:
+          get_input: port_vdbe_oam_1_port_vlan_requirements
+        subinterface_indicator: false
+        virtual_network_refs:
+          get_input:
+          - port_vdbe_oam_1_port_virtual_network_refs
+          - index_value
+        ip_requirements:
+          get_input: port_vdbe_oam_1_port_ip_requirements
+        network_role_tag:
+          get_input: port_vdbe_oam_1_port_network_role_tag
+        virtual_machine_interface_mac_addresses:
+          get_input:
+          - port_vdbe_oam_1_port_virtual_machine_interface_mac_addresses
+          - index_value
+        network_role:
+          get_input: port_vdbe_oam_1_port_network_role
+        subnetpoolid:
+          get_input: port_vdbe_oam_1_port_subnetpoolid
+        name:
+          get_input:
+          - port_vdbe_oam_1_port_name
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: vdbe
+          relationship: tosca.relationships.network.BindsTo
+    vdbe_vdbe_untr_vmi:
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
+      properties:
+        mac_requirements:
+          get_input: port_vdbe_untr_vmi_mac_requirements
+        order:
+          get_input: port_vdbe_untr_vmi_order
+        exCP_naming:
+          get_input: port_vdbe_untr_vmi_exCP_naming
+        virtual_machine_interface_allowed_address_pairs:
+          get_input:
+          - port_vdbe_untr_vmi_virtual_machine_interface_allowed_address_pairs
+          - index_value
+        vlan_requirements:
+          get_input: port_vdbe_untr_vmi_vlan_requirements
+        subinterface_indicator: true
+        virtual_network_refs:
+          get_input:
+          - port_vdbe_untr_vmi_virtual_network_refs
+          - index_value
+        ip_requirements:
+          get_input: port_vdbe_untr_vmi_ip_requirements
+        network_role_tag:
+          get_input: port_vdbe_untr_vmi_network_role_tag
+        virtual_machine_interface_mac_addresses:
+          get_input:
+          - port_vdbe_untr_vmi_virtual_machine_interface_mac_addresses
+          - index_value
+        network_role:
+          get_input: port_vdbe_untr_vmi_network_role
+        subnetpoolid:
+          get_input: port_vdbe_untr_vmi_subnetpoolid
+        name:
+          get_input:
+          - port_vdbe_untr_vmi_name
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: vdbe
+          relationship: tosca.relationships.network.BindsTo
+    vdbe_vdbe_fabr_1_port:
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
+      properties:
+        exCP_naming:
+          get_input: port_vdbe_fabr_1_port_exCP_naming
+        vlan_requirements:
+          get_input: port_vdbe_fabr_1_port_vlan_requirements
+        subinterface_indicator: false
+        ip_requirements:
+          get_input: port_vdbe_fabr_1_port_ip_requirements
+        virtual_network_refs:
+          get_input:
+          - port_vdbe_fabr_1_port_virtual_network_refs
+          - index_value
+        network_role_tag:
+          get_input: port_vdbe_fabr_1_port_network_role_tag
+        mac_requirements:
+          get_input: port_vdbe_fabr_1_port_mac_requirements
+        order:
+          get_input: port_vdbe_fabr_1_port_order
+        network_role:
+          get_input: port_vdbe_fabr_1_port_network_role
+        subnetpoolid:
+          get_input: port_vdbe_fabr_1_port_subnetpoolid
+        name:
+          get_input:
+          - port_vdbe_fabr_1_port_name
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: vdbe
+          relationship: tosca.relationships.network.BindsTo
+    vdbe_vdbe_ctrl_1_port:
+      type: org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface
+      properties:
+        exCP_naming:
+          get_input: port_vdbe_ctrl_1_port_exCP_naming
+        vlan_requirements:
+          get_input: port_vdbe_ctrl_1_port_vlan_requirements
+        subinterface_indicator: false
+        ip_requirements:
+          get_input: port_vdbe_ctrl_1_port_ip_requirements
+        virtual_network_refs:
+          get_input:
+          - port_vdbe_ctrl_1_port_virtual_network_refs
+          - index_value
+        network_role_tag:
+          get_input: port_vdbe_ctrl_1_port_network_role_tag
+        mac_requirements:
+          get_input: port_vdbe_ctrl_1_port_mac_requirements
+        order:
+          get_input: port_vdbe_ctrl_1_port_order
+        network_role:
+          get_input: port_vdbe_ctrl_1_port_network_role
+        subnetpoolid:
+          get_input: port_vdbe_ctrl_1_port_subnetpoolid
+        name:
+          get_input:
+          - port_vdbe_ctrl_1_port_name
+          - index_value
+      requirements:
+      - binding:
+          capability: tosca.capabilities.network.Bindable
+          node: vdbe
+          relationship: tosca.relationships.network.BindsTo
+    vdbe_vdbe_untr_vmi_vdbeav_subinterface_heat_template:
+      type: org.openecomp.resource.abstract.nodes.heat.subinterface.vdbeav_subinterface_heat_template
+      directives:
+      - substitutable
+      properties:
+        aap_untrusted_ip_prefix:
+          get_input:
+          - subinterface_vdbeav_subinterface_heat_template_aap_untrusted_ip_prefix
+          - index_value
+        aap_sec_untrusted_ip_prefix:
+          get_input:
+          - subinterface_vdbeav_subinterface_heat_template_aap_sec_untrusted_ip_prefix
+          - index_value
+        ip_v6_address:
+          get_input:
+          - subinterface_vdbeav_subinterface_heat_template_ip_v6_address
+          - index_value
+        counter:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+        ip_address:
+          get_input:
+          - subinterface_vdbeav_subinterface_heat_template_ip_address
+          - index_value
+        subinterfaces_name_prefix:
+          get_input:
+          - subinterface_vdbeav_subinterface_heat_template_subinterfaces_name_prefix
+          - index_value
+        aap_address_mode:
+          get_input:
+          - subinterface_vdbeav_subinterface_heat_template_aap_address_mode
+          - index_value
+        service_template_filter:
+          count:
+            get_input:
+            - subinterface_vdbeav_subinterface_heat_template_service_template_filter_count
+            - index_value
+          substitute_service_template: vdbeav_subinterface_heat_templateServiceTemplate.yaml
+          mandatory: false
+        aap_untrusted_v6_ip_prefix:
+          get_input:
+          - subinterface_vdbeav_subinterface_heat_template_aap_untrusted_v6_ip_prefix
+          - index_value
+        parent_interface:
+          get_input:
+          - subinterface_vdbeav_subinterface_heat_template_parent_interface
+          - index_value
+        vn_network_list:
+          get_input:
+          - subinterface_vdbeav_subinterface_heat_template_vn_network_list
+          - index_value
+        mac_address:
+          get_input:
+          - subinterface_vdbeav_subinterface_heat_template_mac_address
+          - index_value
+        vlan_tag_list:
+          get_input:
+          - subinterface_vdbeav_subinterface_heat_template_vlan_tag_list
+          - index_value
+        aap_sec_untrusted_ip_prefix_len:
+          get_input:
+          - subinterface_vdbeav_subinterface_heat_template_aap_sec_untrusted_ip_prefix_len
+          - index_value
+        vmac_address:
+          get_input:
+          - subinterface_vdbeav_subinterface_heat_template_vmac_address
+          - index_value
+        aap_untrusted_v6_ip_prefix_len:
+          get_input:
+          - subinterface_vdbeav_subinterface_heat_template_aap_untrusted_v6_ip_prefix_len
+          - index_value
+        aap_untrusted_ip_prefix_len:
+          get_input:
+          - subinterface_vdbeav_subinterface_heat_template_aap_untrusted_ip_prefix_len
+          - index_value
+      requirements:
+      - binding_vdbe_0_subint_untr_vmi_0:
+          capability: tosca.capabilities.network.Bindable
+          node: vdbe_vdbe_untr_vmi
+          relationship: tosca.relationships.network.BindsTo
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.vdbe_1
+    capabilities:
+      binding_vdbe_vdbe_trst_1_port:
+      - vdbe_vdbe_trst_1_port
+      - binding
+      network.outpoing.packets_vdbe_vdbe_ctrl_1_port:
+      - vdbe_vdbe_ctrl_1_port
+      - network.outpoing.packets
+      network.outgoing.bytes.rate_vdbe_vdbe_fabr_1_port:
+      - vdbe_vdbe_fabr_1_port
+      - network.outgoing.bytes.rate
+      forwarder_vdbe_vdbe_trst_1_port:
+      - vdbe_vdbe_trst_1_port
+      - forwarder
+      network.incoming.packets.rate_vdbe_vdbe_untr_vmi:
+      - vdbe_vdbe_untr_vmi
+      - network.incoming.packets.rate
+      feature_vdbe:
+      - vdbe
+      - feature
+      disk.device.iops_vdbe:
+      - vdbe
+      - disk.device.iops
+      endpoint_vdbe:
+      - vdbe
+      - endpoint
+      network.outgoing.packets.rate_vdbe_vdbe_ctrl_1_port:
+      - vdbe_vdbe_ctrl_1_port
+      - network.outgoing.packets.rate
+      cpu_util_vdbe:
+      - vdbe
+      - cpu_util
+      vcpus_vdbe:
+      - vdbe
+      - vcpus
+      disk.write.requests_vdbe:
+      - vdbe
+      - disk.write.requests
+      network.incoming.bytes_vdbe_vdbe_fabr_1_port:
+      - vdbe_vdbe_fabr_1_port
+      - network.incoming.bytes
+      network.incoming.packets.rate_vdbe_vdbe_ctrl_1_port:
+      - vdbe_vdbe_ctrl_1_port
+      - network.incoming.packets.rate
+      network.incoming.bytes.rate_vdbe_vdbe_ctrl_1_port:
+      - vdbe_vdbe_ctrl_1_port
+      - network.incoming.bytes.rate
+      disk.device.latency_vdbe:
+      - vdbe
+      - disk.device.latency
+      network.incoming.packets.rate_vdbe_vdbe_oam_1_port:
+      - vdbe_vdbe_oam_1_port
+      - network.incoming.packets.rate
+      network.incoming.packets_vdbe_vdbe_trst_1_port:
+      - vdbe_vdbe_trst_1_port
+      - network.incoming.packets
+      scalable_vdbe:
+      - vdbe
+      - scalable
+      disk.iops_vdbe:
+      - vdbe
+      - disk.iops
+      network.incoming.packets_vdbe_vdbe_fabr_1_port:
+      - vdbe_vdbe_fabr_1_port
+      - network.incoming.packets
+      disk.device.allocation_vdbe:
+      - vdbe
+      - disk.device.allocation
+      network.outgoing.bytes_vdbe_vdbe_oam_1_port:
+      - vdbe_vdbe_oam_1_port
+      - network.outgoing.bytes
+      network.outgoing.bytes_vdbe_vdbe_fabr_1_port:
+      - vdbe_vdbe_fabr_1_port
+      - network.outgoing.bytes
+      network.outgoing.packets.rate_vdbe_vdbe_fabr_1_port:
+      - vdbe_vdbe_fabr_1_port
+      - network.outgoing.packets.rate
+      network.outgoing.bytes.rate_vdbe_vdbe_ctrl_1_port:
+      - vdbe_vdbe_ctrl_1_port
+      - network.outgoing.bytes.rate
+      network.outgoing.bytes.rate_vdbe_vdbe_oam_1_port:
+      - vdbe_vdbe_oam_1_port
+      - network.outgoing.bytes.rate
+      network.incoming.bytes.rate_vdbe_vdbe_fabr_1_port:
+      - vdbe_vdbe_fabr_1_port
+      - network.incoming.bytes.rate
+      network.incoming.packets.rate_vdbe_vdbe_fabr_1_port:
+      - vdbe_vdbe_fabr_1_port
+      - network.incoming.packets.rate
+      instance_vdbe:
+      - vdbe
+      - instance
+      network.outgoing.bytes.rate_vdbe_vdbe_trst_1_port:
+      - vdbe_vdbe_trst_1_port
+      - network.outgoing.bytes.rate
+      memory.resident_vdbe:
+      - vdbe
+      - memory.resident
+      binding_vdbe_vdbe_fabr_1_port:
+      - vdbe_vdbe_fabr_1_port
+      - binding
+      network.incoming.bytes.rate_vdbe_vdbe_untr_vmi:
+      - vdbe_vdbe_untr_vmi
+      - network.incoming.bytes.rate
+      cpu_vdbe:
+      - vdbe
+      - cpu
+      disk.write.bytes_vdbe:
+      - vdbe
+      - disk.write.bytes
+      network.outgoing.bytes_vdbe_vdbe_ctrl_1_port:
+      - vdbe_vdbe_ctrl_1_port
+      - network.outgoing.bytes
+      disk.latency_vdbe:
+      - vdbe
+      - disk.latency
+      feature_vdbe_0_subint_untr_vmi_0_vdbe_vdbe_untr_vmi_vdbeav_subinterface_heat_template:
+      - vdbe_vdbe_untr_vmi_vdbeav_subinterface_heat_template
+      - feature_vdbe_0_subint_untr_vmi_0
+      network.outpoing.packets_vdbe_vdbe_fabr_1_port:
+      - vdbe_vdbe_fabr_1_port
+      - network.outpoing.packets
+      network.outpoing.packets_vdbe_vdbe_oam_1_port:
+      - vdbe_vdbe_oam_1_port
+      - network.outpoing.packets
+      network.outgoing.bytes.rate_vdbe_vdbe_untr_vmi:
+      - vdbe_vdbe_untr_vmi
+      - network.outgoing.bytes.rate
+      disk.allocation_vdbe:
+      - vdbe
+      - disk.allocation
+      disk.read.bytes.rate_vdbe:
+      - vdbe
+      - disk.read.bytes.rate
+      feature_vdbe_vdbe_trst_1_port:
+      - vdbe_vdbe_trst_1_port
+      - feature
+      os_vdbe:
+      - vdbe
+      - os
+      forwarder_vdbe_vdbe_untr_vmi:
+      - vdbe_vdbe_untr_vmi
+      - forwarder
+      network.incoming.bytes_vdbe_vdbe_trst_1_port:
+      - vdbe_vdbe_trst_1_port
+      - network.incoming.bytes
+      disk.root.size_vdbe:
+      - vdbe
+      - disk.root.size
+      network.outgoing.bytes_vdbe_vdbe_untr_vmi:
+      - vdbe_vdbe_untr_vmi
+      - network.outgoing.bytes
+      memory_vdbe:
+      - vdbe
+      - memory
+      binding_vdbe:
+      - vdbe
+      - binding
+      disk.device.write.bytes_vdbe:
+      - vdbe
+      - disk.device.write.bytes
+      disk.device.read.requests.rate_vdbe:
+      - vdbe
+      - disk.device.read.requests.rate
+      network.outgoing.packets.rate_vdbe_vdbe_oam_1_port:
+      - vdbe_vdbe_oam_1_port
+      - network.outgoing.packets.rate
+      disk.ephemeral.size_vdbe:
+      - vdbe
+      - disk.ephemeral.size
+      network.outgoing.packets.rate_vdbe_vdbe_trst_1_port:
+      - vdbe_vdbe_trst_1_port
+      - network.outgoing.packets.rate
+      feature_vdbe_vdbe_untr_vmi:
+      - vdbe_vdbe_untr_vmi
+      - feature
+      network.incoming.bytes.rate_vdbe_vdbe_trst_1_port:
+      - vdbe_vdbe_trst_1_port
+      - network.incoming.bytes.rate
+      network.incoming.packets.rate_vdbe_vdbe_trst_1_port:
+      - vdbe_vdbe_trst_1_port
+      - network.incoming.packets.rate
+      disk.device.write.requests.rate_vdbe:
+      - vdbe
+      - disk.device.write.requests.rate
+      network.outpoing.packets_vdbe_vdbe_trst_1_port:
+      - vdbe_vdbe_trst_1_port
+      - network.outpoing.packets
+      disk.write.bytes.rate_vdbe:
+      - vdbe
+      - disk.write.bytes.rate
+      feature_vdbe_vdbe_untr_vmi_vdbeav_subinterface_heat_template:
+      - vdbe_vdbe_untr_vmi_vdbeav_subinterface_heat_template
+      - feature
+      disk.device.write.requests_vdbe:
+      - vdbe
+      - disk.device.write.requests
+      feature_vdbe_vdbe_fabr_1_port:
+      - vdbe_vdbe_fabr_1_port
+      - feature
+      disk.device.capacity_vdbe:
+      - vdbe
+      - disk.device.capacity
+      network.incoming.bytes_vdbe_vdbe_oam_1_port:
+      - vdbe_vdbe_oam_1_port
+      - network.incoming.bytes
+      forwarder_vdbe_vdbe_ctrl_1_port:
+      - vdbe_vdbe_ctrl_1_port
+      - forwarder
+      disk.usage_vdbe:
+      - vdbe
+      - disk.usage
+      memory.usage_vdbe:
+      - vdbe
+      - memory.usage
+      disk.read.requests_vdbe:
+      - vdbe
+      - disk.read.requests
+      network.incoming.packets_vdbe_vdbe_ctrl_1_port:
+      - vdbe_vdbe_ctrl_1_port
+      - network.incoming.packets
+      network.outpoing.packets_vdbe_vdbe_untr_vmi:
+      - vdbe_vdbe_untr_vmi
+      - network.outpoing.packets
+      forwarder_vdbe_vdbe_fabr_1_port:
+      - vdbe_vdbe_fabr_1_port
+      - forwarder
+      cpu.delta_vdbe:
+      - vdbe
+      - cpu.delta
+      disk.device.read.bytes.rate_vdbe:
+      - vdbe
+      - disk.device.read.bytes.rate
+      disk.device.write.bytes.rate_vdbe:
+      - vdbe
+      - disk.device.write.bytes.rate
+      network.incoming.packets_vdbe_vdbe_untr_vmi:
+      - vdbe_vdbe_untr_vmi
+      - network.incoming.packets
+      disk.write.requests.rate_vdbe:
+      - vdbe
+      - disk.write.requests.rate
+      binding_vdbe_vdbe_untr_vmi:
+      - vdbe_vdbe_untr_vmi
+      - binding
+      disk.device.usage_vdbe:
+      - vdbe
+      - disk.device.usage
+      disk.device.read.bytes_vdbe:
+      - vdbe
+      - disk.device.read.bytes
+      forwarder_vdbe_vdbe_oam_1_port:
+      - vdbe_vdbe_oam_1_port
+      - forwarder
+      binding_vdbe_vdbe_oam_1_port:
+      - vdbe_vdbe_oam_1_port
+      - binding
+      network.outgoing.bytes_vdbe_vdbe_trst_1_port:
+      - vdbe_vdbe_trst_1_port
+      - network.outgoing.bytes
+      binding_vdbe_vdbe_ctrl_1_port:
+      - vdbe_vdbe_ctrl_1_port
+      - binding
+      feature_vdbe_vdbe_oam_1_port:
+      - vdbe_vdbe_oam_1_port
+      - feature
+      disk.capacity_vdbe:
+      - vdbe
+      - disk.capacity
+      host_vdbe:
+      - vdbe
+      - host
+      network.incoming.packets_vdbe_vdbe_oam_1_port:
+      - vdbe_vdbe_oam_1_port
+      - network.incoming.packets
+      network.outgoing.packets.rate_vdbe_vdbe_untr_vmi:
+      - vdbe_vdbe_untr_vmi
+      - network.outgoing.packets.rate
+      network.incoming.bytes_vdbe_vdbe_untr_vmi:
+      - vdbe_vdbe_untr_vmi
+      - network.incoming.bytes
+      network.incoming.bytes_vdbe_vdbe_ctrl_1_port:
+      - vdbe_vdbe_ctrl_1_port
+      - network.incoming.bytes
+      disk.device.read.requests_vdbe:
+      - vdbe
+      - disk.device.read.requests
+      feature_vdbe_vdbe_ctrl_1_port:
+      - vdbe_vdbe_ctrl_1_port
+      - feature
+      network.incoming.bytes.rate_vdbe_vdbe_oam_1_port:
+      - vdbe_vdbe_oam_1_port
+      - network.incoming.bytes.rate
+      disk.read.bytes_vdbe:
+      - vdbe
+      - disk.read.bytes
+    requirements:
+      dependency_vdbe_vdbe_fabr_1_port:
+      - vdbe_vdbe_fabr_1_port
+      - dependency
+      dependency_vdbe_vdbe_trst_1_port:
+      - vdbe_vdbe_trst_1_port
+      - dependency
+      local_storage_vdbe:
+      - vdbe
+      - local_storage
+      link_vdbe_vdbe_ctrl_1_port:
+      - vdbe_vdbe_ctrl_1_port
+      - link
+      dependency_vdbe:
+      - vdbe
+      - dependency
+      link_vdbe_vdbe_fabr_1_port:
+      - vdbe_vdbe_fabr_1_port
+      - link
+      link_vdbe_vdbe_untr_vmi:
+      - vdbe_vdbe_untr_vmi
+      - link
+      link_vdbe_vdbe_trst_1_port:
+      - vdbe_vdbe_trst_1_port
+      - link
+      dependency_vdbe_vdbe_untr_vmi_vdbeav_subinterface_heat_template:
+      - vdbe_vdbe_untr_vmi_vdbeav_subinterface_heat_template
+      - dependency
+      dependency_vdbe_0_subint_untr_vmi_0_vdbe_vdbe_untr_vmi_vdbeav_subinterface_heat_template:
+      - vdbe_vdbe_untr_vmi_vdbeav_subinterface_heat_template
+      - dependency_vdbe_0_subint_untr_vmi_0
+      dependency_vdbe_vdbe_oam_1_port:
+      - vdbe_vdbe_oam_1_port
+      - dependency
+      dependency_vdbe_vdbe_untr_vmi:
+      - vdbe_vdbe_untr_vmi
+      - dependency
+      dependency_vdbe_vdbe_ctrl_1_port:
+      - vdbe_vdbe_ctrl_1_port
+      - dependency
+      subinterface_link_vdbe_0_subint_untr_vmi_0_vdbe_vdbe_untr_vmi_vdbeav_subinterface_heat_template:
+      - vdbe_vdbe_untr_vmi_vdbeav_subinterface_heat_template
+      - subinterface_link_vdbe_0_subint_untr_vmi_0
+      link_vdbe_vdbe_oam_1_port:
+      - vdbe_vdbe_oam_1_port
+      - link
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/vdbeav/out/vdbeav_subinterface_heat_templateServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/subinterface/vlantagging/vfcInstanceGroup/vdbeav/out/vdbeav_subinterface_heat_templateServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..8f6ecb4
--- /dev/null
@@ -0,0 +1,176 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+metadata:
+  template_name: vdbeav_subinterface_heat_template
+imports:
+- openecomp_heat_index:
+    file: openecomp-heat/_index.yml
+- GlobalSubstitutionTypes:
+    file: GlobalSubstitutionTypesServiceTemplate.yaml
+topology_template:
+  inputs:
+    aap_untrusted_ip_prefix:
+      hidden: false
+      immutable: false
+      type: string
+      description: ip prefix for primary vDBE VM on the VAN untrusted network
+    aap_sec_untrusted_ip_prefix:
+      hidden: false
+      immutable: false
+      type: string
+      description: ip prefix for secondary vDBE VM aap on the VAN untrusted network
+    ip_v6_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: IPv6 address associated with subinterfaces
+    counter:
+      hidden: false
+      immutable: false
+      type: float
+      description: Index of instance among multiple instances.  Use to retrieve correct parameter for this instance when passed all parameters for all instances.
+    subinterfaces_name_prefix:
+      hidden: false
+      immutable: false
+      type: string
+      description: Combined with subinterface_instance_index, this is used as the name of the subinterface resource
+    ip_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: IPv4 address associated with subinterfaces
+    aap_address_mode:
+      hidden: false
+      immutable: false
+      type: string
+      description: Address mode for the vDBE cluster IP
+    parent_interface:
+      hidden: false
+      immutable: false
+      type: string
+      description: Parent Contrail interface
+    aap_untrusted_v6_ip_prefix:
+      hidden: false
+      immutable: false
+      type: string
+      description: ipv6 prefix for the primary vDBE VM on the VAN untrusted network
+    vn_network_list:
+      hidden: false
+      immutable: false
+      type: list
+      description: List of Contrail VLAN networks to use for the subinterfaces.   The order and number of these must match the VLAN ID list
+      entry_schema:
+        type: string
+    mac_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: HW MAC address to use for subinterface
+    vlan_tag_list:
+      hidden: false
+      immutable: false
+      type: list
+      description: List of VLAN IDs to use for subinterfaces
+      entry_schema:
+        type: string
+    vmac_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: virtual MAC address to use for subinterface
+    aap_sec_untrusted_ip_prefix_len:
+      hidden: false
+      immutable: false
+      type: string
+      description: ip prefix length for the secondary DBE VM aap on the VAN untrusted network
+    aap_untrusted_v6_ip_prefix_len:
+      hidden: false
+      immutable: false
+      type: string
+      description: ipv6 prefix length for the primary vDBE VM on the VAN untrusted network
+    aap_untrusted_ip_prefix_len:
+      hidden: false
+      immutable: false
+      type: string
+      description: ip prefix length for the primary vDBE VM on the VAN untrusted network
+  node_templates:
+    vdbe_0_subint_untr_vmi_0:
+      type: org.openecomp.resource.cp.nodes.heat.network.v2.contrailV2.VLANSubInterface
+      properties:
+        virtual_machine_interface_refs:
+        - get_input: parent_interface
+        name:
+          str_replace:
+            template: $NAME_$INDEX
+            params:
+              $NAME:
+                get_input: subinterfaces_name_prefix
+              $INDEX:
+                get_input:
+                - vlan_tag_list
+                - get_input: counter
+        virtual_network_refs:
+        - get_input:
+          - vn_network_list
+          - get_input: counter
+        virtual_machine_interface_properties:
+          sub_interface_vlan_tag:
+            get_input:
+            - vlan_tag_list
+            - get_input: counter
+        virtual_machine_interface_allowed_address_pairs:
+          allowed_address_pair:
+          - address_mode:
+              get_input: aap_address_mode
+            ip:
+              ip_prefix:
+                get_input: aap_untrusted_ip_prefix
+              ip_prefix_len:
+                get_input: aap_untrusted_ip_prefix_len
+            mac:
+              get_input: vmac_address
+          - address_mode:
+              get_input: aap_address_mode
+            ip:
+              ip_prefix:
+                get_input: aap_sec_untrusted_ip_prefix
+              ip_prefix_len:
+                get_input: aap_sec_untrusted_ip_prefix_len
+            mac:
+              get_input: mac_address
+          - address_mode:
+              get_input: aap_address_mode
+            ip:
+              ip_prefix:
+                get_input: aap_untrusted_v6_ip_prefix
+              ip_prefix_len:
+                get_input: aap_untrusted_v6_ip_prefix_len
+            mac:
+              get_input: vmac_address
+        virtual_machine_interface_mac_addresses:
+          mac_address:
+          - get_input: mac_address
+  groups:
+    vdbeav_subinterface_heat_template_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/vdbeav_subinterface_heat_template.yaml
+        description: |
+          HOT template to instantiate a single Contrail VLAN sub-interface with associated instance IP addresses and allowed address pairs
+      members:
+      - vdbe_0_subint_untr_vmi_0
+  substitution_mappings:
+    node_type: org.openecomp.resource.abstract.nodes.heat.subinterface.vdbeav_subinterface_heat_template
+    capabilities:
+      feature_vdbe_0_subint_untr_vmi_0:
+      - vdbe_0_subint_untr_vmi_0
+      - feature
+    requirements:
+      dependency_vdbe_0_subint_untr_vmi_0:
+      - vdbe_0_subint_untr_vmi_0
+      - dependency
+      subinterface_link_vdbe_0_subint_untr_vmi_0:
+      - vdbe_0_subint_untr_vmi_0
+      - subinterface_link
+      binding_vdbe_0_subint_untr_vmi_0:
+      - vdbe_0_subint_untr_vmi_0
+      - binding