Fixing requirements in substituable node templates 41/12141/2
authortalio <tali.orenbach@amdocs.com>
Wed, 13 Sep 2017 09:23:28 +0000 (12:23 +0300)
committertalio <tali.orenbach@amdocs.com>
Wed, 13 Sep 2017 10:21:55 +0000 (13:21 +0300)
Adding dependencies with correct dependency id for substituable node templates

Change-Id: I696441bc62807cf2abd73963583d6198dfaea259
Issue-ID: SDC-313
Signed-off-by: talio <tali.orenbach@amdocs.com>
75 files changed:
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/TranslationContext.java
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/main/java/org/openecomp/sdc/translator/services/heattotosca/UnifiedCompositionService.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/utils/ResourceWalker.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/java/org/openecomp/sdc/translator/services/heattotosca/impl/fulltest/UnifiedCompositionNestedSingleComputeFullTest.java
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeDiffImageName/out/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypeGetAttrBetweenThem/out/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/threeComputesSameTypePortsConnectedToDiffNetworks/out/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/catalogInstances/twoNovaWithDiffProperties/out/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/connectivityBetweenPatterns/out/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/dependencyConnectivity/out/nested-pcm_v0.1ServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/oneAppearancePerPattern/out/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/mixPatterns/twoAppearancePerPatternWithConnectivities/out/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/nested-pattern-4ServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/nested1ServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/allPatternsDependsOnConnectivity/out/nested2ServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/out/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/portSecurityGroupNetPattern1B/out/nested2ServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsDiffVmTypePattern1B/out/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/threeNestedLevelsSameVmTypePattern1B/out/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/out/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/out/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/multiLevel/twoNestedLevelsWithAllPatternsAndConnectivities/out/nested1ServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllNonNestedPatterns/out/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedAllPatternsConnectivity/out/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedCatalogInstance/out/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedScalingInstance/out/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedSingleSubstitution1B/out/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameFileOneDiff/out/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedOtherScenarios/oneLevel/nestedTwoSameOneDiffWithConnectivity/out/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/diffNestedFilesWithSameComputeType/out/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/duplicateReqs/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/nestedSingleCompute/duplicateReqs/in/base_cscf.env [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/duplicateReqs/in/base_cscf.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/duplicateReqs/in/base_cscf_volume.env [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/duplicateReqs/in/base_cscf_volume.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/duplicateReqs/in/nested_cscf.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/duplicateReqs/in/nested_tdcore.yaml [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/duplicateReqs/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/nestedSingleCompute/multipleReferencesToSameNestedFilesWithSameComputeType/out/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/multipleReferencesToSameNestedFilesWithSameComputeType/out/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedMultiLevels/out/nested3ServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedNodesConnectedIn/out/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedNodesGetAttrIn/out/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedOutputParamGetAttrIn/out/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedOutputParamGetAttrIn/out/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithOneCompute/out/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithOneCompute/out/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithOneComputeDiffPortType/out/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoComputesOfSameType/out/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoComputesOfSameType/out/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/nestedWithTwoDiffComputeTypes/out/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/threeNestedPointingToThreeDiffNestedFilesSameComputeType/out/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/threeNestedPointingToThreeDiffNestedFilesSameComputeType/out/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/threeNestedSameTypeTwoPointingOnSameNestedFile/out/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/threeNestedSameTypeTwoPointingOnSameNestedFile/out/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/twoNestedNodeTemplatesWithSameComputeType/out/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/scalingInstances/oneComputeTypeOnePortNodeConnectedOut/out/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computeWithDiffPortTypeNodeConnectedOut/out/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computeWithSamePortTypeNodeConnectedOut/out/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/computewithtwodiffporttypesandnested/out/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/singleSubstitution/threeDiffComputesWithAllConnectivities/out/MainServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/NoOutParamDuplicatePortType/out/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/NoPorts/out/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithIndex/out/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithOutputParameters/consolidation/out/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/WithOutputParameters/noConsolidation/out/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/updNodesGetAttrInFromInnerNodes/consolidation/out/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/creSubstitutionServiceTemplate/updNodesGetAttrInFromInnerNodes/noConsolidation/out/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/pattern4/oneNestedNode/out/GlobalSubstitutionTypesServiceTemplate.yaml
openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/unifiedComposition/pattern4/twoNestedWithOneCompute/out/GlobalSubstitutionTypesServiceTemplate.yaml

index c03ca56..f5ad2a1 100644 (file)
@@ -68,23 +68,23 @@ public class TranslationContext {
     Configuration config = ConfigurationManager.lookup();
     String propertyFileName = SdcCommon.HEAT_TO_TOSCA_MAPPING_CONF;
     translationMapping =
-            config.generateMap(ConfigConstants.MAPPING_NAMESPACE, ConfigConstants.RESOURCE_MAPPING_KEY);
+        config.generateMap(ConfigConstants.MAPPING_NAMESPACE, ConfigConstants.RESOURCE_MAPPING_KEY);
     try {
       globalServiceTemplates = GlobalTypesGenerator.getGlobalTypesServiceTemplate();
     } catch (Exception exc) {
       throw new RuntimeException("Failed to load GlobalTypes", exc);
     }
     nameExtractorImplMap = config.populateMap(ConfigConstants.TRANSLATOR_NAMESPACE,
-            ConfigConstants.NAMING_CONVENTION_EXTRACTOR_IMPL_KEY, ImplementationConfiguration.class);
+        ConfigConstants.NAMING_CONVENTION_EXTRACTOR_IMPL_KEY, ImplementationConfiguration.class);
     supportedConsolidationComputeResources = config.populateMap(ConfigConstants
-            .MANDATORY_UNIFIED_MODEL_NAMESPACE, ConfigConstants
-            .SUPPORTED_CONSOLIDATION_COMPUTE_RESOURCES_KEY, ImplementationConfiguration.class);
+        .MANDATORY_UNIFIED_MODEL_NAMESPACE, ConfigConstants
+        .SUPPORTED_CONSOLIDATION_COMPUTE_RESOURCES_KEY, ImplementationConfiguration.class);
     supportedConsolidationPortResources = config.populateMap(ConfigConstants
-            .MANDATORY_UNIFIED_MODEL_NAMESPACE, ConfigConstants
-            .SUPPORTED_CONSOLIDATION_PORT_RESOURCES_KEY, ImplementationConfiguration.class);
+        .MANDATORY_UNIFIED_MODEL_NAMESPACE, ConfigConstants
+        .SUPPORTED_CONSOLIDATION_PORT_RESOURCES_KEY, ImplementationConfiguration.class);
     enrichPortResourceProperties = config.getAsStringValues(ConfigConstants
-            .MANDATORY_UNIFIED_MODEL_NAMESPACE, ConfigConstants
-            .ENRICH_PORT_RESOURCE_PROP);
+        .MANDATORY_UNIFIED_MODEL_NAMESPACE, ConfigConstants
+        .ENRICH_PORT_RESOURCE_PROP);
 
   }
 
@@ -119,8 +119,10 @@ public class TranslationContext {
   private Map<String, UnifiedSubstitutionData> unifiedSubstitutionData = new HashMap<>();
   private Set<String> unifiedHandledServiceTemplates = new HashSet<>();
 
-  private Map<String, Map<RequirementAssignment, String>>
-          mapDependencySubMappingToRequirementAssignment = new HashMap<>();
+  private Map<String, Map<String, Map<String, Integer>>>
+      requirementIdAppearanceInNodeTemplate = new HashMap<>();
+
+  private Set<String> serviceTemplatesWithoutNodeTemplateSection = new HashSet<>();
 
   public static Map<String, ImplementationConfiguration>
   getSupportedConsolidationComputeResources() {
@@ -128,9 +130,9 @@ public class TranslationContext {
   }
 
   public static void setSupportedConsolidationComputeResources(
-          Map<String, ImplementationConfiguration> supportedConsolidationComputeResources) {
+      Map<String, ImplementationConfiguration> supportedConsolidationComputeResources) {
     TranslationContext.supportedConsolidationComputeResources =
-            supportedConsolidationComputeResources;
+        supportedConsolidationComputeResources;
   }
 
   public static Map<String, ImplementationConfiguration> getSupportedConsolidationPortResources() {
@@ -138,7 +140,7 @@ public class TranslationContext {
   }
 
   public static void setSupportedConsolidationPortResources(
-          Map<String, ImplementationConfiguration> supportedConsolidationPortResources) {
+      Map<String, ImplementationConfiguration> supportedConsolidationPortResources) {
     TranslationContext.supportedConsolidationPortResources = supportedConsolidationPortResources;
   }
 
@@ -150,7 +152,7 @@ public class TranslationContext {
    */
   public static NameExtractor getNameExtractorImpl(String extractorImplKey) {
     String nameExtractorImplClassName =
-            nameExtractorImplMap.get(extractorImplKey).getImplementationClass();
+        nameExtractorImplMap.get(extractorImplKey).getImplementationClass();
 
     return CommonMethods.newInstance(nameExtractorImplClassName, NameExtractor.class);
   }
@@ -160,7 +162,7 @@ public class TranslationContext {
   }
 
   public void setUnifiedSubstitutionData(
-          Map<String, UnifiedSubstitutionData> unifiedSubstitutionData) {
+      Map<String, UnifiedSubstitutionData> unifiedSubstitutionData) {
     this.unifiedSubstitutionData = unifiedSubstitutionData;
   }
 
@@ -170,14 +172,14 @@ public class TranslationContext {
                                      NodeTemplate nodeTemplate) {
     this.unifiedSubstitutionData.putIfAbsent(serviceTemplateName, new UnifiedSubstitutionData());
     this.unifiedSubstitutionData
-            .get(serviceTemplateName)
-            .addCleanedNodeTemplate(nodeTemplateId, unifiedCompositionEntity, nodeTemplate);
+        .get(serviceTemplateName)
+        .addCleanedNodeTemplate(nodeTemplateId, unifiedCompositionEntity, nodeTemplate);
   }
 
   public NodeTemplate getCleanedNodeTemplate(String serviceTemplateName,
                                              String nodeTemplateId) {
     return this.unifiedSubstitutionData.get(serviceTemplateName)
-            .getCleanedNodeTemplate(nodeTemplateId);
+        .getCleanedNodeTemplate(nodeTemplateId);
   }
 
   public void addUnifiedNestedNodeTemplateId(String serviceTemplateName,
@@ -185,13 +187,13 @@ public class TranslationContext {
                                              String unifiedNestedNodeTemplateId) {
     this.unifiedSubstitutionData.putIfAbsent(serviceTemplateName, new UnifiedSubstitutionData());
     this.unifiedSubstitutionData.get(serviceTemplateName)
-            .addUnifiedNestedNodeTemplateId(nestedNodeTemplateId, unifiedNestedNodeTemplateId);
+        .addUnifiedNestedNodeTemplateId(nestedNodeTemplateId, unifiedNestedNodeTemplateId);
   }
 
   public Optional<String> getUnifiedNestedNodeTemplateId(String serviceTemplateName,
                                                          String nestedNodeTemplateId) {
     return this.unifiedSubstitutionData.get(serviceTemplateName) == null ? Optional.empty()
-            : this.unifiedSubstitutionData.get(serviceTemplateName)
+        : this.unifiedSubstitutionData.get(serviceTemplateName)
             .getUnifiedNestedNodeTemplateId(nestedNodeTemplateId);
   }
 
@@ -200,13 +202,13 @@ public class TranslationContext {
                                          String unifiedNestedNodeTypeId) {
     this.unifiedSubstitutionData.putIfAbsent(serviceTemplateName, new UnifiedSubstitutionData());
     this.unifiedSubstitutionData.get(serviceTemplateName)
-            .addUnifiedNestedNodeTypeId(nestedNodeTypeId, unifiedNestedNodeTypeId);
+        .addUnifiedNestedNodeTypeId(nestedNodeTypeId, unifiedNestedNodeTypeId);
   }
 
   public Optional<String> getUnifiedNestedNodeTypeId(String serviceTemplateName,
                                                      String nestedNodeTemplateId) {
     return this.unifiedSubstitutionData.get(serviceTemplateName) == null ? Optional.empty()
-            : this.unifiedSubstitutionData.get(serviceTemplateName)
+        : this.unifiedSubstitutionData.get(serviceTemplateName)
             .getUnifiedNestedNodeTypeId(nestedNodeTemplateId);
   }
 
@@ -263,12 +265,12 @@ public class TranslationContext {
   }
 
   public Set<String> getAllTranslatedResourceIdsFromDiffNestedFiles(String
-                                                                            nestedHeatFileNameToSkip){
+                                                                        nestedHeatFileNameToSkip){
     Set<String> allTranslatedResourceIds = new HashSet<>();
 
     this.translatedIds.entrySet().stream().filter(
-            heatFileNameToTranslatedIdsEntry -> !heatFileNameToTranslatedIdsEntry.getKey()
-                    .equals(nestedHeatFileNameToSkip)).forEach(heatFileNameToTranslatedIdsEntry -> {
+        heatFileNameToTranslatedIdsEntry -> !heatFileNameToTranslatedIdsEntry.getKey()
+            .equals(nestedHeatFileNameToSkip)).forEach(heatFileNameToTranslatedIdsEntry -> {
       allTranslatedResourceIds.addAll(heatFileNameToTranslatedIdsEntry.getValue().keySet());
     });
 
@@ -329,7 +331,7 @@ public class TranslationContext {
   public void addHeatSharedResourcesByParam(String parameterName, String resourceId,
                                             Resource resource) {
     this.addHeatSharedResourcesByParam(parameterName,
-            new TranslatedHeatResource(resourceId, resource));
+        new TranslatedHeatResource(resourceId, resource));
   }
 
   private void addHeatSharedResourcesByParam(String parameterName,
@@ -355,7 +357,7 @@ public class TranslationContext {
   }
 
   public void addUsedHeatPseudoParams(String heatFileName, String heatPseudoParam, String
-          translatedToscaParam) {
+      translatedToscaParam) {
     if (Objects.isNull(this.usedHeatPseudoParams.get(heatFileName))) {
       this.usedHeatPseudoParams.put(heatFileName, new HashMap<>());
     }
@@ -375,8 +377,8 @@ public class TranslationContext {
                                          String abstractNodeTemplateId) {
 
     Map<String, String> nodeAbstractNodeTemplateIdMap = this.getUnifiedSubstitutionData()
-            .computeIfAbsent(serviceTemplateFileName, k -> new UnifiedSubstitutionData())
-            .getNodesRelatedAbstractNode();
+        .computeIfAbsent(serviceTemplateFileName, k -> new UnifiedSubstitutionData())
+        .getNodesRelatedAbstractNode();
 
     if (nodeAbstractNodeTemplateIdMap == null) {
       nodeAbstractNodeTemplateIdMap = new HashMap<>();
@@ -384,13 +386,13 @@ public class TranslationContext {
 
     if(nodeAbstractNodeTemplateIdMap.containsKey(originalNodeTemplateId)){
       throw new CoreException((new ErrorCode.ErrorCodeBuilder())
-              .withMessage("Resource with id "
-                      + originalNodeTemplateId + " occures more than once in different addOn files")
-              .build());
+          .withMessage("Resource with id "
+              + originalNodeTemplateId + " occures more than once in different addOn files")
+          .build());
     }
     nodeAbstractNodeTemplateIdMap.put(originalNodeTemplateId, abstractNodeTemplateId);
     this.getUnifiedSubstitutionData().get(serviceTemplateFileName).setNodesRelatedAbstractNode(
-            nodeAbstractNodeTemplateIdMap);
+        nodeAbstractNodeTemplateIdMap);
   }
 
   /**
@@ -403,23 +405,23 @@ public class TranslationContext {
    *                                                  service template
    */
   public void addSubstitutionServiceTemplateUnifiedSubstitutionData(
-          String serviceTemplateFileName,
-          String originalNodeTemplateId,
-          String substitutionServiceTemplateNodeTemplateId) {
+      String serviceTemplateFileName,
+      String originalNodeTemplateId,
+      String substitutionServiceTemplateNodeTemplateId) {
 
     Map<String, String> nodesRelatedSubstitutionServiceTemplateNodeTemplateIdMap = this
-            .getUnifiedSubstitutionData()
-            .computeIfAbsent(serviceTemplateFileName, k -> new UnifiedSubstitutionData())
-            .getNodesRelatedSubstitutionServiceTemplateNode();
+        .getUnifiedSubstitutionData()
+        .computeIfAbsent(serviceTemplateFileName, k -> new UnifiedSubstitutionData())
+        .getNodesRelatedSubstitutionServiceTemplateNode();
 
     if (nodesRelatedSubstitutionServiceTemplateNodeTemplateIdMap == null) {
       nodesRelatedSubstitutionServiceTemplateNodeTemplateIdMap = new HashMap<>();
     }
     nodesRelatedSubstitutionServiceTemplateNodeTemplateIdMap.put(originalNodeTemplateId,
-            substitutionServiceTemplateNodeTemplateId);
+        substitutionServiceTemplateNodeTemplateId);
     this.getUnifiedSubstitutionData().get(serviceTemplateFileName)
-            .setNodesRelatedSubstitutionServiceTemplateNode(
-                    nodesRelatedSubstitutionServiceTemplateNodeTemplateIdMap);
+        .setNodesRelatedSubstitutionServiceTemplateNode(
+            nodesRelatedSubstitutionServiceTemplateNodeTemplateIdMap);
   }
 
   /**
@@ -431,7 +433,7 @@ public class TranslationContext {
   public String getUnifiedAbstractNodeTemplateId(ServiceTemplate serviceTemplate,
                                                  String nodeTemplateId) {
     UnifiedSubstitutionData unifiedSubstitutionData =
-            this.unifiedSubstitutionData.get(ToscaUtil.getServiceTemplateFileName(serviceTemplate));
+        this.unifiedSubstitutionData.get(ToscaUtil.getServiceTemplateFileName(serviceTemplate));
     return unifiedSubstitutionData.getNodesRelatedAbstractNode().get(nodeTemplateId);
   }
 
@@ -445,26 +447,26 @@ public class TranslationContext {
   public String getUnifiedSubstitutionNodeTemplateId(ServiceTemplate serviceTemplate,
                                                      String nodeTemplateId) {
     UnifiedSubstitutionData unifiedSubstitutionData =
-            this.unifiedSubstitutionData.get(ToscaUtil.getServiceTemplateFileName(serviceTemplate));
+        this.unifiedSubstitutionData.get(ToscaUtil.getServiceTemplateFileName(serviceTemplate));
     return unifiedSubstitutionData.getNodesRelatedSubstitutionServiceTemplateNode()
-            .get(nodeTemplateId);
+        .get(nodeTemplateId);
   }
 
   public int getHandledNestedComputeNodeTemplateIndex(String serviceTemplateName,
                                                       String computeType) {
     return this.unifiedSubstitutionData.get(serviceTemplateName)
-            .getHandledNestedComputeNodeTemplateIndex(computeType);
+        .getHandledNestedComputeNodeTemplateIndex(computeType);
   }
 
   public void updateHandledComputeType(String serviceTemplateName,
                                        String handledComputeType,
                                        String nestedServiceTemplateFileName) {
     String globalSTName =
-            ToscaUtil.getServiceTemplateFileName(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME);
+        ToscaUtil.getServiceTemplateFileName(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME);
     this.unifiedSubstitutionData.putIfAbsent(
-            globalSTName, new UnifiedSubstitutionData());
+        globalSTName, new UnifiedSubstitutionData());
     this.unifiedSubstitutionData.get(globalSTName)
-            .addHandledComputeType(handledComputeType);
+        .addHandledComputeType(handledComputeType);
     this.unifiedSubstitutionData.get(globalSTName).addHandlesNestedServiceTemplate(nestedServiceTemplateFileName);
 
     this.unifiedSubstitutionData.putIfAbsent(serviceTemplateName, new UnifiedSubstitutionData());
@@ -480,15 +482,15 @@ public class TranslationContext {
   public boolean isComputeTypeHandledInServiceTemplate(String serviceTemplateName,
                                                        String computeType) {
     return !Objects.isNull(this.unifiedSubstitutionData.get(serviceTemplateName))
-            && this.unifiedSubstitutionData.get(serviceTemplateName)
-            .isComputeTypeHandledInServiceTemplate(computeType);
+        && this.unifiedSubstitutionData.get(serviceTemplateName)
+        .isComputeTypeHandledInServiceTemplate(computeType);
   }
 
   public int getHandledNestedComputeNodeTemplateIndex(String serviceTemplateName,
                                                       String nestedServiceTemplateName,
                                                       String computeType){
     return this.unifiedSubstitutionData.get(serviceTemplateName)
-            .getHandledNestedComputeNodeTemplateIndex(computeType);
+        .getHandledNestedComputeNodeTemplateIndex(computeType);
   }
 
   public boolean isNestedServiceTemplateWasHandled(String serviceTemplateName,
@@ -497,13 +499,13 @@ public class TranslationContext {
       return false;
     }
     return this.unifiedSubstitutionData.get(serviceTemplateName)
-            .isNestedServiceTemplateWasHandled(nestedServiceTemplateFileName);
+        .isNestedServiceTemplateWasHandled(nestedServiceTemplateFileName);
   }
 
   public Set<String> getAllRelatedNestedNodeTypeIds(){
     String globalName = "GlobalSubstitutionTypes";
     if(Objects.isNull(this.unifiedSubstitutionData) ||
-            Objects.isNull(this.unifiedSubstitutionData.get(globalName))){
+        Objects.isNull(this.unifiedSubstitutionData.get(globalName))){
       return new HashSet<>();
     }
 
@@ -531,14 +533,14 @@ public class TranslationContext {
       return false;
     }
     return this.unifiedSubstitutionData.get(serviceTemplateName)
-            .isNestedNodeWasHandled(nestedNodeTemplateId);
+        .isNestedNodeWasHandled(nestedNodeTemplateId);
   }
 
   public void addNestedNodeAsHandled(String serviceTemplateName,
                                      String nestedNodeTemplateId) {
     this.unifiedSubstitutionData.putIfAbsent(serviceTemplateName, new UnifiedSubstitutionData());
     this.unifiedSubstitutionData.get(serviceTemplateName)
-            .addHandledNestedNodes(nestedNodeTemplateId);
+        .addHandledNestedNodes(nestedNodeTemplateId);
   }
 
   public void updateUsedTimesForNestedComputeNodeType(String serviceTemplateName,
@@ -546,7 +548,7 @@ public class TranslationContext {
     this.unifiedSubstitutionData.putIfAbsent(serviceTemplateName, new UnifiedSubstitutionData());
 
     this.unifiedSubstitutionData.get(serviceTemplateName)
-            .updateUsedTimesForNestedComputeNodeType(computeType);
+        .updateUsedTimesForNestedComputeNodeType(computeType);
   }
 
   public int getGlobalNodeTypeIndex(String serviceTemplateName,
@@ -555,7 +557,7 @@ public class TranslationContext {
       return 0;
     }
     return this.unifiedSubstitutionData.get(serviceTemplateName).getGlobalNodeTypeIndex
-            (computeType);
+        (computeType);
   }
 
   public void addNewPropertyIdToNodeTemplate(String serviceTemplateName,
@@ -563,7 +565,7 @@ public class TranslationContext {
                                              Object origPropertyValue){
     this.unifiedSubstitutionData.putIfAbsent(serviceTemplateName, new UnifiedSubstitutionData());
     this.unifiedSubstitutionData.get(serviceTemplateName).addNewPropertyIdToNodeTemplate(
-            newPropertyId, origPropertyValue);
+        newPropertyId, origPropertyValue);
   }
 
   public Optional<Object> getNewPropertyInputParamId(String serviceTemplateName,
@@ -573,7 +575,7 @@ public class TranslationContext {
     }
 
     return this.unifiedSubstitutionData.get(serviceTemplateName).getNewPropertyInputParam
-            (newPropertyId);
+        (newPropertyId);
   }
 
   public Map<String, Object> getAllNewPropertyInputParamIdsPerNodeTenplateId(String serviceTemplateName){
@@ -585,27 +587,31 @@ public class TranslationContext {
 
   }
 
-  public void addSubMappingReqAssignment(String serviceTemplateName,
-                                         RequirementAssignment requirementAssignment,
-                                         String newReqId){
-    this.mapDependencySubMappingToRequirementAssignment
-            .putIfAbsent(serviceTemplateName, new HashMap<>());
-    this.mapDependencySubMappingToRequirementAssignment.get(serviceTemplateName)
-            .putIfAbsent(requirementAssignment, newReqId);
+  public void addServiceTemplateWithoutNodeTemplates(String serviceTemplateName){
+    this.serviceTemplatesWithoutNodeTemplateSection.add(serviceTemplateName);
   }
 
-  public Optional<String> getNewReqAssignmentDependencyId(String serviceTemplateName,
-                                                          RequirementAssignment requirementAssignment){
-    if(!this.mapDependencySubMappingToRequirementAssignment.containsKey(serviceTemplateName)){
-      return Optional.empty();
-    }
-
-    Map<RequirementAssignment, String> requirementAssignmentMap =
-            this.mapDependencySubMappingToRequirementAssignment.get(serviceTemplateName);
-    return requirementAssignmentMap.containsKey
-            (requirementAssignment) ? Optional.of(requirementAssignmentMap.get(requirementAssignment)) :
-            Optional.empty();
+  public boolean isServiceTemplateWithoutNodeTemplates(String serviceTemplateName){
+    return !Objects.isNull(serviceTemplateName) &&
+        this.serviceTemplatesWithoutNodeTemplateSection.contains(serviceTemplateName);
   }
 
+  public void updateRequirementAssignmentIdIndex(String serviceTemplateName,
+                                                 String nodeTemplateId,
+                                                 String requirementId){
+    requirementIdAppearanceInNodeTemplate.putIfAbsent(serviceTemplateName, new HashMap<>());
+    requirementIdAppearanceInNodeTemplate
+        .get(serviceTemplateName).putIfAbsent(nodeTemplateId, new HashMap<>());
+
+    Map<String, Integer> requirementIdToAppearance =
+        requirementIdAppearanceInNodeTemplate.get(serviceTemplateName).get(nodeTemplateId);
+
+    if(requirementIdToAppearance.containsKey(requirementId)){
+      requirementIdToAppearance
+          .put(requirementId, requirementIdToAppearance.get(requirementId) + 1);
+    } else {
+      requirementIdToAppearance.put(requirementId, 0);
+    }
+  }
 
 }
index b0bac3b..74deb04 100644 (file)
@@ -33,6 +33,7 @@ import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolida
 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.TypeComputeConsolidationData;
 
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -57,41 +58,41 @@ public class ConsolidationDataUtil {
    * @return the compute template consolidation data
    */
   public static ComputeTemplateConsolidationData getComputeTemplateConsolidationData(
-          TranslationContext context,
-          ServiceTemplate serviceTemplate,
-          String computeNodeType,
-          String computeNodeTemplateId) {
+      TranslationContext context,
+      ServiceTemplate serviceTemplate,
+      String computeNodeType,
+      String computeNodeTemplateId) {
 
     ConsolidationData consolidationData = context.getConsolidationData();
     String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
 
     ComputeConsolidationData computeConsolidationData = consolidationData
-            .getComputeConsolidationData();
+        .getComputeConsolidationData();
 
     FileComputeConsolidationData fileComputeConsolidationData = computeConsolidationData
-            .getFileComputeConsolidationData(serviceTemplateFileName);
+        .getFileComputeConsolidationData(serviceTemplateFileName);
 
     if (fileComputeConsolidationData == null) {
       fileComputeConsolidationData = new FileComputeConsolidationData();
       computeConsolidationData.setFileComputeConsolidationData(serviceTemplateFileName,
-              fileComputeConsolidationData);
+          fileComputeConsolidationData);
     }
 
     TypeComputeConsolidationData typeComputeConsolidationData = fileComputeConsolidationData
-            .getTypeComputeConsolidationData(computeNodeType);
+        .getTypeComputeConsolidationData(computeNodeType);
     if (typeComputeConsolidationData == null) {
       typeComputeConsolidationData = new TypeComputeConsolidationData();
       fileComputeConsolidationData.setTypeComputeConsolidationData(computeNodeType,
-              typeComputeConsolidationData);
+          typeComputeConsolidationData);
     }
 
     ComputeTemplateConsolidationData computeTemplateConsolidationData =
-            typeComputeConsolidationData.getComputeTemplateConsolidationData(computeNodeTemplateId);
+        typeComputeConsolidationData.getComputeTemplateConsolidationData(computeNodeTemplateId);
     if (computeTemplateConsolidationData == null) {
       computeTemplateConsolidationData = new ComputeTemplateConsolidationData();
       computeTemplateConsolidationData.setNodeTemplateId(computeNodeTemplateId);
       typeComputeConsolidationData.setComputeTemplateConsolidationData(computeNodeTemplateId,
-              computeTemplateConsolidationData);
+          computeTemplateConsolidationData);
     }
 
     return computeTemplateConsolidationData;
@@ -107,9 +108,9 @@ public class ConsolidationDataUtil {
    * @return the port template consolidation data
    */
   public static PortTemplateConsolidationData getPortTemplateConsolidationData(
-          TranslationContext context,
-          ServiceTemplate serviceTemplate,
-          String portNodeTemplateId) {
+      TranslationContext context,
+      ServiceTemplate serviceTemplate,
+      String portNodeTemplateId) {
 
     ConsolidationData consolidationData = context.getConsolidationData();
     String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
@@ -117,21 +118,21 @@ public class ConsolidationDataUtil {
     PortConsolidationData portConsolidationData = consolidationData.getPortConsolidationData();
 
     FilePortConsolidationData filePortConsolidationData = portConsolidationData
-            .getFilePortConsolidationData(serviceTemplateFileName);
+        .getFilePortConsolidationData(serviceTemplateFileName);
 
     if (filePortConsolidationData == null) {
       filePortConsolidationData = new FilePortConsolidationData();
       portConsolidationData.setFilePortConsolidationData(serviceTemplateFileName,
-              filePortConsolidationData);
+          filePortConsolidationData);
     }
 
     PortTemplateConsolidationData portTemplateConsolidationData =
-            filePortConsolidationData.getPortTemplateConsolidationData(portNodeTemplateId);
+        filePortConsolidationData.getPortTemplateConsolidationData(portNodeTemplateId);
     if (portTemplateConsolidationData == null) {
       portTemplateConsolidationData = new PortTemplateConsolidationData();
       portTemplateConsolidationData.setNodeTemplateId(portNodeTemplateId);
       filePortConsolidationData.setPortTemplateConsolidationData(portNodeTemplateId,
-              portTemplateConsolidationData);
+          portTemplateConsolidationData);
     }
 
     return portTemplateConsolidationData;
@@ -147,40 +148,40 @@ public class ConsolidationDataUtil {
    *@param nestedNodeTemplateId the nested node template id  @return the nested template consolidation data
    */
   public static NestedTemplateConsolidationData getNestedTemplateConsolidationData(
-          TranslationContext context,
-          ServiceTemplate serviceTemplate,
-          String nestedHeatFileName, String nestedNodeTemplateId) {
+      TranslationContext context,
+      ServiceTemplate serviceTemplate,
+      String nestedHeatFileName, String nestedNodeTemplateId) {
 
     if(isNestedResourceIdOccuresInDifferentNestedFiles(context, nestedHeatFileName,
-            nestedNodeTemplateId)){
+        nestedNodeTemplateId)){
       throw new CoreException((new ErrorCode.ErrorCodeBuilder())
-              .withMessage("Resource with id "
-                      + nestedNodeTemplateId + " occures more than once in different addOn "
-                      + "files").build());
+          .withMessage("Resource with id "
+              + nestedNodeTemplateId + " occures more than once in different addOn "
+              + "files").build());
     }
 
     ConsolidationData consolidationData = context.getConsolidationData();
     String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
 
     NestedConsolidationData nestedConsolidationData = consolidationData
-            .getNestedConsolidationData();
+        .getNestedConsolidationData();
 
     FileNestedConsolidationData fileNestedConsolidationData = nestedConsolidationData
-            .getFileNestedConsolidationData(serviceTemplateFileName);
+        .getFileNestedConsolidationData(serviceTemplateFileName);
 
     if (fileNestedConsolidationData == null) {
       fileNestedConsolidationData = new FileNestedConsolidationData();
       nestedConsolidationData.setFileNestedConsolidationData(serviceTemplateFileName,
-              fileNestedConsolidationData);
+          fileNestedConsolidationData);
     }
 
     NestedTemplateConsolidationData nestedTemplateConsolidationData =
-            fileNestedConsolidationData.getNestedTemplateConsolidationData(nestedNodeTemplateId);
+        fileNestedConsolidationData.getNestedTemplateConsolidationData(nestedNodeTemplateId);
     if (nestedTemplateConsolidationData == null) {
       nestedTemplateConsolidationData = new NestedTemplateConsolidationData();
       nestedTemplateConsolidationData.setNodeTemplateId(nestedNodeTemplateId);
       fileNestedConsolidationData.setNestedTemplateConsolidationData(nestedNodeTemplateId,
-              nestedTemplateConsolidationData);
+          nestedTemplateConsolidationData);
     }
 
     return nestedTemplateConsolidationData;
@@ -189,7 +190,8 @@ public class ConsolidationDataUtil {
   private static boolean isNestedResourceIdOccuresInDifferentNestedFiles(TranslationContext context,
                                                                          String nestedHeatFileName,
                                                                          String nestedNodeTemplateId) {
-    return context.getAllTranslatedResourceIdsFromDiffNestedFiles(nestedHeatFileName).contains(nestedNodeTemplateId);
+    return Objects.nonNull(nestedHeatFileName)
+        && context.getAllTranslatedResourceIdsFromDiffNestedFiles(nestedHeatFileName).contains(nestedNodeTemplateId);
   }
 
   /**
@@ -199,7 +201,7 @@ public class ConsolidationDataUtil {
    * @param translatedGroupId       Group id of which compute node is a part
    */
   public static void updateGroupIdInConsolidationData(EntityConsolidationData
-                                                              entityConsolidationData,
+                                                          entityConsolidationData,
                                                       String translatedGroupId) {
     if (entityConsolidationData.getGroupIds() == null) {
       entityConsolidationData.setGroupIds(new ArrayList<>());
@@ -220,12 +222,12 @@ public class ConsolidationDataUtil {
                                                            String computeNodeTemplateId,
                                                            String requirementId,
                                                            RequirementAssignment
-                                                                   requirementAssignment) {
+                                                               requirementAssignment) {
     TranslationContext translationContext = translateTo.getContext();
     ServiceTemplate serviceTemplate = translateTo.getServiceTemplate();
     ComputeTemplateConsolidationData computeTemplateConsolidationData =
-            getComputeTemplateConsolidationData(translationContext, serviceTemplate, computeType,
-                    computeNodeTemplateId);
+        getComputeTemplateConsolidationData(translationContext, serviceTemplate, computeType,
+            computeNodeTemplateId);
     computeTemplateConsolidationData.addVolume(requirementId, requirementAssignment);
   }
 
@@ -243,8 +245,8 @@ public class ConsolidationDataUtil {
     TranslationContext translationContext = translateTo.getContext();
     ServiceTemplate serviceTemplate = translateTo.getServiceTemplate();
     ComputeTemplateConsolidationData computeTemplateConsolidationData =
-            getComputeTemplateConsolidationData(translationContext, serviceTemplate, computeNodeType,
-                    translateTo.getTranslatedId());
+        getComputeTemplateConsolidationData(translationContext, serviceTemplate, computeNodeType,
+            translateTo.getTranslatedId());
     computeTemplateConsolidationData.addPort(getPortType(portNodeTemplateId), portNodeTemplateId);
     // create port in consolidation data
     getPortTemplateConsolidationData(translationContext, serviceTemplate, portNodeTemplateId);
@@ -264,32 +266,25 @@ public class ConsolidationDataUtil {
                                               RequirementAssignment requirementAssignment) {
     ConsolidationEntityType consolidationEntityType = ConsolidationEntityType.OTHER;
     HeatOrchestrationTemplate heatOrchestrationTemplate = translateTo
-            .getHeatOrchestrationTemplate();
+        .getHeatOrchestrationTemplate();
     TranslationContext translationContext = translateTo.getContext();
 
     consolidationEntityType.setEntityType(heatOrchestrationTemplate, sourceResource,
-            targetResource, translateTo.getContext());
+        targetResource, translateTo.getContext());
     // Add resource dependency information in nodesConnectedIn if the target node
     // is a consolidation entity
     if (isConsolidationEntity(consolidationEntityType.getTargetEntityType())) {
       ConsolidationDataUtil.updateNodesConnectedIn(translateTo,
-              nodeTemplateId, consolidationEntityType.getTargetEntityType(), targetResourceId,
-              requirementId, requirementAssignment);
+          nodeTemplateId, consolidationEntityType.getTargetEntityType(), targetResourceId,
+          requirementId, requirementAssignment);
     }
 
     //Add resource dependency information in nodesConnectedOut if the source node
     //is a consolidation entity
     if (isConsolidationEntity(consolidationEntityType.getSourceEntityType())) {
       ConsolidationDataUtil.updateNodesConnectedOut(translateTo,
-              requirementAssignment.getNode(), consolidationEntityType.getSourceEntityType(),
-              requirementId, requirementAssignment);
-      ConsolidationDataUtil.updateNodesConnectedOut(translateTo,
-              requirementAssignment.getNode(), consolidationEntityType.getSourceEntityType(),
-              requirementId + "_" + nodeTemplateId, requirementAssignment);
-
-      translationContext.addSubMappingReqAssignment(ToscaUtil.getServiceTemplateFileName
-                      (translateTo.getServiceTemplate()),
-              requirementAssignment, requirementId + "_" + nodeTemplateId);
+          requirementAssignment.getNode(), consolidationEntityType.getSourceEntityType(),
+          requirementId, requirementAssignment);
 
     }
   }
@@ -297,9 +292,9 @@ public class ConsolidationDataUtil {
 
   private static boolean isConsolidationEntity(ConsolidationEntityType consolidationEntityType) {
     return (consolidationEntityType == ConsolidationEntityType.COMPUTE
-            || consolidationEntityType == ConsolidationEntityType.PORT
-            || consolidationEntityType == ConsolidationEntityType.NESTED
-            || consolidationEntityType == ConsolidationEntityType.VFC_NESTED);
+        || consolidationEntityType == ConsolidationEntityType.PORT
+        || consolidationEntityType == ConsolidationEntityType.NESTED
+        || consolidationEntityType == ConsolidationEntityType.VFC_NESTED);
   }
 
   /**
@@ -319,20 +314,30 @@ public class ConsolidationDataUtil {
     EntityConsolidationData entityConsolidationData = null;
     TranslationContext translationContext = translateTo.getContext();
     ServiceTemplate serviceTemplate = translateTo.getServiceTemplate();
+
+    translationContext.updateRequirementAssignmentIdIndex(ToscaUtil.getServiceTemplateFileName
+        (translateTo.getServiceTemplate()), translateTo.getResourceId(), requirementId);
+
     RequirementAssignmentData requirementAssignmentData = new RequirementAssignmentData(
-            requirementId, requirementAssignment);
+        requirementId, requirementAssignment);
 
     if (consolidationEntityType == ConsolidationEntityType.COMPUTE) {
       String nodeType = DataModelUtil.getNodeTemplate(serviceTemplate, translateTo
-              .getTranslatedId()).getType();
+          .getTranslatedId()).getType();
       entityConsolidationData = getComputeTemplateConsolidationData(translationContext,
-              serviceTemplate, nodeType, translateTo.getTranslatedId());
+          serviceTemplate, nodeType, translateTo.getTranslatedId());
     } else if (consolidationEntityType == ConsolidationEntityType.PORT) {
       entityConsolidationData = getPortTemplateConsolidationData(translationContext,
-              serviceTemplate, translateTo.getTranslatedId());
+          serviceTemplate, translateTo.getTranslatedId());
     } else if (consolidationEntityType == ConsolidationEntityType.VFC_NESTED
-            || consolidationEntityType == ConsolidationEntityType.NESTED) {
-      //ConnectedOut data for nested is not updated
+        || consolidationEntityType == ConsolidationEntityType.NESTED) {
+      entityConsolidationData =
+          getNestedTemplateConsolidationData(translationContext, serviceTemplate,
+              null,
+              translateTo.getTranslatedId());
+    }
+
+    if(Objects.isNull(entityConsolidationData)){
       return;
     }
 
@@ -341,8 +346,8 @@ public class ConsolidationDataUtil {
     }
 
     entityConsolidationData.getNodesConnectedOut()
-            .computeIfAbsent(nodeTemplateId, k -> new ArrayList<>())
-            .add(requirementAssignmentData);
+        .computeIfAbsent(nodeTemplateId, k -> new ArrayList<>())
+        .add(requirementAssignmentData);
   }
 
   /**
@@ -363,34 +368,34 @@ public class ConsolidationDataUtil {
     TranslationContext translationContext = translateTo.getContext();
     ServiceTemplate serviceTemplate = translateTo.getServiceTemplate();
     RequirementAssignmentData requirementAssignmentData = new RequirementAssignmentData(
-            requirementId, requirementAssignment);
+        requirementId, requirementAssignment);
     String dependentNodeTemplateId = requirementAssignment.getNode();
     if (consolidationEntityType == ConsolidationEntityType.COMPUTE) {
       NodeTemplate computeNodeTemplate = DataModelUtil.getNodeTemplate(serviceTemplate,
-              dependentNodeTemplateId);
+          dependentNodeTemplateId);
       String nodeType = null;
       if (Objects.isNull(computeNodeTemplate)) {
         Resource targetResource =
-                translateTo.getHeatOrchestrationTemplate().getResources().get(targetResourceId);
+            translateTo.getHeatOrchestrationTemplate().getResources().get(targetResourceId);
         NameExtractor nodeTypeNameExtractor =
-                translateTo.getContext().getNameExtractorImpl(targetResource.getType());
+            translateTo.getContext().getNameExtractorImpl(targetResource.getType());
         nodeType =
-                nodeTypeNameExtractor.extractNodeTypeName(translateTo.getHeatOrchestrationTemplate()
-                                .getResources().get(dependentNodeTemplateId),
-                        dependentNodeTemplateId, dependentNodeTemplateId);
+            nodeTypeNameExtractor.extractNodeTypeName(translateTo.getHeatOrchestrationTemplate()
+                    .getResources().get(dependentNodeTemplateId),
+                dependentNodeTemplateId, dependentNodeTemplateId);
       } else {
         nodeType = computeNodeTemplate.getType();
       }
 
       entityConsolidationData = getComputeTemplateConsolidationData(translationContext,
-              serviceTemplate, nodeType, dependentNodeTemplateId);
+          serviceTemplate, nodeType, dependentNodeTemplateId);
     } else if (consolidationEntityType == ConsolidationEntityType.PORT) {
       entityConsolidationData = getPortTemplateConsolidationData(translationContext,
-              serviceTemplate, dependentNodeTemplateId);
+          serviceTemplate, dependentNodeTemplateId);
     } else if (consolidationEntityType == ConsolidationEntityType.NESTED
-            || consolidationEntityType == ConsolidationEntityType.VFC_NESTED) {
+        || consolidationEntityType == ConsolidationEntityType.VFC_NESTED) {
       entityConsolidationData = getNestedTemplateConsolidationData(translationContext,
-              serviceTemplate, translateTo.getHeatFileName(), dependentNodeTemplateId);
+          serviceTemplate, translateTo.getHeatFileName(), dependentNodeTemplateId);
     }
 
     if (entityConsolidationData.getNodesConnectedIn() == null) {
@@ -398,8 +403,8 @@ public class ConsolidationDataUtil {
     }
 
     entityConsolidationData.getNodesConnectedIn()
-            .computeIfAbsent(sourceNodeTemplateId, k -> new ArrayList<>())
-            .add(requirementAssignmentData);
+        .computeIfAbsent(sourceNodeTemplateId, k -> new ArrayList<>())
+        .add(requirementAssignmentData);
 
   }
 
@@ -414,7 +419,7 @@ public class ConsolidationDataUtil {
                                           String resourceId) {
     String resourceType = heatOrchestrationTemplate.getResources().get(resourceId).getType();
     Map<String, ImplementationConfiguration> supportedComputeResources = TranslationContext
-            .getSupportedConsolidationComputeResources();
+        .getSupportedConsolidationComputeResources();
     if (supportedComputeResources.containsKey(resourceType)) {
       if (supportedComputeResources.get(resourceType).isEnable()) {
         return true;
@@ -433,7 +438,7 @@ public class ConsolidationDataUtil {
   public static boolean isComputeResource(Resource resource) {
     String resourceType = resource.getType();
     Map<String, ImplementationConfiguration> supportedComputeResources = TranslationContext
-            .getSupportedConsolidationComputeResources();
+        .getSupportedConsolidationComputeResources();
     if (supportedComputeResources.containsKey(resourceType)) {
       if (supportedComputeResources.get(resourceType).isEnable()) {
         return true;
@@ -454,7 +459,7 @@ public class ConsolidationDataUtil {
                                        String resourceId) {
     String resourceType = heatOrchestrationTemplate.getResources().get(resourceId).getType();
     Map<String, ImplementationConfiguration> supportedPortResources = TranslationContext
-            .getSupportedConsolidationPortResources();
+        .getSupportedConsolidationPortResources();
     if (supportedPortResources.containsKey(resourceType)) {
       if (supportedPortResources.get(resourceType).isEnable()) {
         return true;
@@ -473,7 +478,7 @@ public class ConsolidationDataUtil {
   public static boolean isPortResource(Resource resource) {
     String resourceType = resource.getType();
     Map<String, ImplementationConfiguration> supportedPortResources = TranslationContext
-            .getSupportedConsolidationPortResources();
+        .getSupportedConsolidationPortResources();
     if (supportedPortResources.containsKey(resourceType)) {
       if (supportedPortResources.get(resourceType).isEnable()) {
         return true;
@@ -494,8 +499,8 @@ public class ConsolidationDataUtil {
                                          String resourceId) {
     String resourceType = heatOrchestrationTemplate.getResources().get(resourceId).getType();
     return (resourceType.equals(HeatResourcesTypes.CINDER_VOLUME_RESOURCE_TYPE.getHeatResource())
-            || resourceType.equals(HeatResourcesTypes.CINDER_VOLUME_ATTACHMENT_RESOURCE_TYPE
-            .getHeatResource()));
+        || resourceType.equals(HeatResourcesTypes.CINDER_VOLUME_ATTACHMENT_RESOURCE_TYPE
+        .getHeatResource()));
   }
 
   /**
@@ -507,8 +512,8 @@ public class ConsolidationDataUtil {
   public static boolean isVolumeResource(Resource resource) {
     String resourceType = resource.getType();
     return (resourceType.equals(HeatResourcesTypes.CINDER_VOLUME_RESOURCE_TYPE.getHeatResource())
-            || resourceType.equals(HeatResourcesTypes.CINDER_VOLUME_ATTACHMENT_RESOURCE_TYPE
-            .getHeatResource()));
+        || resourceType.equals(HeatResourcesTypes.CINDER_VOLUME_ATTACHMENT_RESOURCE_TYPE
+        .getHeatResource()));
   }
 
   /**
@@ -549,7 +554,7 @@ public class ConsolidationDataUtil {
     TranslationContext context = translateTo.getContext();
     ServiceTemplate serviceTemplate = translateTo.getServiceTemplate();
     getNestedTemplateConsolidationData(
-            context, serviceTemplate, translateTo.getHeatFileName(), translateTo.getTranslatedId());
+        context, serviceTemplate, translateTo.getHeatFileName(), translateTo.getTranslatedId());
   }
 
   public static void removeSharedResource(ServiceTemplate serviceTemplate,
@@ -559,23 +564,23 @@ public class ConsolidationDataUtil {
                                           String contrailSharedResourceId,
                                           String sharedTranslatedResourceId) {
     if (ConsolidationDataUtil.isComputeResource(heatOrchestrationTemplate,
-            contrailSharedResourceId)) {
+        contrailSharedResourceId)) {
       NodeTemplate nodeTemplate = DataModelUtil.getNodeTemplate(serviceTemplate,
-              sharedTranslatedResourceId);
+          sharedTranslatedResourceId);
       EntityConsolidationData entityConsolidationData = getComputeTemplateConsolidationData(
-              context, serviceTemplate, nodeTemplate.getType(), sharedTranslatedResourceId);
+          context, serviceTemplate, nodeTemplate.getType(), sharedTranslatedResourceId);
       List<GetAttrFuncData> getAttrFuncDataList = entityConsolidationData
-              .getOutputParametersGetAttrIn();
+          .getOutputParametersGetAttrIn();
       removeParamNameFromAttrFuncList(paramName, getAttrFuncDataList);
     }
     if (ConsolidationDataUtil.isPortResource(heatOrchestrationTemplate,
-            contrailSharedResourceId)) {
+        contrailSharedResourceId)) {
       NodeTemplate nodeTemplate = DataModelUtil.getNodeTemplate(serviceTemplate,
-              sharedTranslatedResourceId);
+          sharedTranslatedResourceId);
       EntityConsolidationData entityConsolidationData = getPortTemplateConsolidationData(context,
-              serviceTemplate, sharedTranslatedResourceId);
+          serviceTemplate, sharedTranslatedResourceId);
       List<GetAttrFuncData> getAttrFuncDataList = entityConsolidationData
-              .getOutputParametersGetAttrIn();
+          .getOutputParametersGetAttrIn();
       removeParamNameFromAttrFuncList(paramName, getAttrFuncDataList);
     }
   }
@@ -612,7 +617,7 @@ public class ConsolidationDataUtil {
   }
 
   public static void updateOutputGetAttributeInConsolidationData(EntityConsolidationData
-                                                                         entityConsolidationData,
+                                                                     entityConsolidationData,
                                                                  String outputParameterName,
                                                                  String attributeName) {
 
index 876e524..bed404f 100644 (file)
@@ -35,7 +35,6 @@ import org.apache.commons.lang3.tuple.Pair;
 import org.openecomp.config.api.Configuration;
 import org.openecomp.config.api.ConfigurationManager;
 import org.openecomp.core.utilities.CommonMethods;
-import org.openecomp.core.utilities.json.JsonUtil;
 import org.openecomp.sdc.datatypes.configuration.ImplementationConfiguration;
 import org.openecomp.sdc.heat.services.HeatConstants;
 import org.openecomp.sdc.logging.api.Logger;
@@ -83,6 +82,7 @@ import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolida
 import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.TypeComputeConsolidationData;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -97,27 +97,27 @@ import java.util.regex.Pattern;
 public class UnifiedCompositionService {
 
   protected static Logger logger =
-          (Logger) LoggerFactory.getLogger(UnifiedCompositionService.class);
+      (Logger) LoggerFactory.getLogger(UnifiedCompositionService.class);
   protected static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
   private static Map<String, ImplementationConfiguration> unifiedCompositionImplMap;
 
   static {
     Configuration config = ConfigurationManager.lookup();
     unifiedCompositionImplMap =
-            config.populateMap(ConfigConstants.MANDATORY_UNIFIED_MODEL_NAMESPACE,
-                    ConfigConstants.UNIFIED_COMPOSITION_IMPL_KEY, ImplementationConfiguration.class);
+        config.populateMap(ConfigConstants.MANDATORY_UNIFIED_MODEL_NAMESPACE,
+            ConfigConstants.UNIFIED_COMPOSITION_IMPL_KEY, ImplementationConfiguration.class);
 
   }
 
   private ConsolidationService consolidationService = new ConsolidationService();
 
   private static List<EntityConsolidationData> getPortConsolidationDataList(
-          Set<String> portIds,
-          List<UnifiedCompositionData> unifiedCompositionDataList) {
+      Set<String> portIds,
+      List<UnifiedCompositionData> unifiedCompositionDataList) {
     List<EntityConsolidationData> portConsolidationDataList = new ArrayList<>();
     for (UnifiedCompositionData unifiedCompositionData : unifiedCompositionDataList) {
       for (PortTemplateConsolidationData portTemplateConsolidationData : unifiedCompositionData
-              .getPortTemplateConsolidationDataList()) {
+          .getPortTemplateConsolidationDataList()) {
         if (portIds.contains(portTemplateConsolidationData.getNodeTemplateId())) {
           portConsolidationDataList.add(portTemplateConsolidationData);
         }
@@ -148,8 +148,8 @@ public class UnifiedCompositionService {
       return;
     }
     unifiedCompositionInstance.get()
-            .createUnifiedComposition(serviceTemplate, nestedServiceTemplate,
-                    unifiedCompositionDataList, context);
+        .createUnifiedComposition(serviceTemplate, nestedServiceTemplate,
+            unifiedCompositionDataList, context);
     mdcDataDebugMessage.debugExitMessage(null, null);
   }
 
@@ -166,41 +166,41 @@ public class UnifiedCompositionService {
    * @return the substitution service template
    */
   public Optional<ServiceTemplate> createUnifiedSubstitutionServiceTemplate(
-          ServiceTemplate serviceTemplate,
-          List<UnifiedCompositionData> unifiedCompositionDataList,
-          TranslationContext context,
-          String substitutionNodeTypeId,
-          Integer index) {
+      ServiceTemplate serviceTemplate,
+      List<UnifiedCompositionData> unifiedCompositionDataList,
+      TranslationContext context,
+      String substitutionNodeTypeId,
+      Integer index) {
     if (CollectionUtils.isEmpty(unifiedCompositionDataList)) {
       return Optional.empty();
     }
     UnifiedCompositionData unifiedCompositionData = unifiedCompositionDataList.get(0);
     String templateName =
-            getTemplateName(serviceTemplate, unifiedCompositionData, substitutionNodeTypeId, index);
+        getTemplateName(serviceTemplate, unifiedCompositionData, substitutionNodeTypeId, index);
     ServiceTemplate substitutionServiceTemplate =
-            HeatToToscaUtil.createInitSubstitutionServiceTemplate(templateName);
+        HeatToToscaUtil.createInitSubstitutionServiceTemplate(templateName);
 
     createIndexInputParameter(substitutionServiceTemplate);
 
     String computeNodeType =
-            handleCompute(serviceTemplate, substitutionServiceTemplate, unifiedCompositionDataList,
-                    context);
+        handleCompute(serviceTemplate, substitutionServiceTemplate, unifiedCompositionDataList,
+            context);
     handlePorts(serviceTemplate, substitutionServiceTemplate, unifiedCompositionDataList,
-            computeNodeType, context);
+        computeNodeType, context);
     createOutputParameters(serviceTemplate, substitutionServiceTemplate, unifiedCompositionDataList,
-            computeNodeType, context);
+        computeNodeType, context);
     NodeType substitutionGlobalNodeType =
-            handleSubstitutionGlobalNodeType(serviceTemplate, substitutionServiceTemplate,
-                    context, unifiedCompositionData, substitutionNodeTypeId, index);
+        handleSubstitutionGlobalNodeType(serviceTemplate, substitutionServiceTemplate,
+            context, unifiedCompositionData, substitutionNodeTypeId, index);
 
     ServiceTemplate globalSubstitutionServiceTemplate =
-            HeatToToscaUtil.fetchGlobalSubstitutionServiceTemplate(serviceTemplate, context);
+        HeatToToscaUtil.fetchGlobalSubstitutionServiceTemplate(serviceTemplate, context);
     addComputeNodeTypeToGlobalST(computeNodeType, serviceTemplate,
-            globalSubstitutionServiceTemplate, substitutionGlobalNodeType);
+        globalSubstitutionServiceTemplate, substitutionGlobalNodeType);
 
     HeatToToscaUtil.handleSubstitutionMapping(context,
-            substitutionNodeTypeId,
-            substitutionServiceTemplate, substitutionGlobalNodeType);
+        substitutionNodeTypeId,
+        substitutionServiceTemplate, substitutionGlobalNodeType);
 
     context.getTranslatedServiceTemplates().put(templateName, substitutionServiceTemplate);
     return Optional.of(substitutionServiceTemplate);
@@ -212,11 +212,11 @@ public class UnifiedCompositionService {
                                             NodeType substitutionGlobalNodeType) {
     NodeType nodeType = DataModelUtil.getNodeType(serviceTemplate, computeNodeType);
     NodeType clonedNT =
-            (NodeType) DataModelUtil.getClonedObject(substitutionGlobalNodeType, NodeType.class);
+        (NodeType) DataModelUtil.getClonedObject(substitutionGlobalNodeType, NodeType.class);
     clonedNT.setDerived_from(nodeType.getDerived_from());
     DataModelUtil
-            .addNodeType(globalSubstitutionServiceTemplate, computeNodeType,
-                    clonedNT);
+        .addNodeType(globalSubstitutionServiceTemplate, computeNodeType,
+            clonedNT);
   }
 
   /**
@@ -233,12 +233,12 @@ public class UnifiedCompositionService {
    * @return the abstract substitute node template id
    */
   public String createAbstractSubstituteNodeTemplate(
-          ServiceTemplate serviceTemplate,
-          ServiceTemplate substitutionServiceTemplate,
-          List<UnifiedCompositionData> unifiedCompositionDataList,
-          String substituteNodeTypeId,
-          TranslationContext context,
-          Integer index) {
+      ServiceTemplate serviceTemplate,
+      ServiceTemplate substitutionServiceTemplate,
+      List<UnifiedCompositionData> unifiedCompositionDataList,
+      String substituteNodeTypeId,
+      TranslationContext context,
+      Integer index) {
 
     NodeTemplate substitutionNodeTemplate = new NodeTemplate();
     List<String> directiveList = new ArrayList<>();
@@ -246,26 +246,26 @@ public class UnifiedCompositionService {
     substitutionNodeTemplate.setDirectives(directiveList);
     substitutionNodeTemplate.setType(substituteNodeTypeId);
     Optional<Map<String, Object>> abstractSubstitutionProperties =
-            createAbstractSubstitutionProperties(serviceTemplate,
-                    substitutionServiceTemplate, unifiedCompositionDataList, context);
+        createAbstractSubstitutionProperties(serviceTemplate,
+            substitutionServiceTemplate, unifiedCompositionDataList, context);
     abstractSubstitutionProperties.ifPresent(substitutionNodeTemplate::setProperties);
 
     //Add substitution filtering property
     String substitutionServiceTemplateName = ToscaUtil.getServiceTemplateFileName(
-            substitutionServiceTemplate);
+        substitutionServiceTemplate);
     int count = unifiedCompositionDataList.size();
     DataModelUtil.addSubstitutionFilteringProperty(substitutionServiceTemplateName,
-            substitutionNodeTemplate, count);
+        substitutionNodeTemplate, count);
     //Add index_value property
     addIndexValueProperty(substitutionNodeTemplate);
     String substituteNodeTemplateId =
-            getSubstituteNodeTemplateId(serviceTemplate, unifiedCompositionDataList.get(0),
-                    substituteNodeTypeId, index);
+        getSubstituteNodeTemplateId(serviceTemplate, unifiedCompositionDataList.get(0),
+            substituteNodeTypeId, index);
     //Add node template id and related abstract node template id in context
     addUnifiedSubstitionData(context, serviceTemplate, unifiedCompositionDataList,
-            substituteNodeTemplateId);
+        substituteNodeTemplateId);
     DataModelUtil
-            .addNodeTemplate(serviceTemplate, substituteNodeTemplateId, substitutionNodeTemplate);
+        .addNodeTemplate(serviceTemplate, substituteNodeTemplateId, substitutionNodeTemplate);
     return substituteNodeTemplateId;
 
   }
@@ -304,18 +304,18 @@ public class UnifiedCompositionService {
    * @param context                    the translation context
    */
   public void cleanUnifiedCompositionEntities(
-          ServiceTemplate serviceTemplate,
-          List<UnifiedCompositionData> unifiedCompositionDataList,
-          TranslationContext context) {
+      ServiceTemplate serviceTemplate,
+      List<UnifiedCompositionData> unifiedCompositionDataList,
+      TranslationContext context) {
     for (UnifiedCompositionData unifiedCompositionData : unifiedCompositionDataList) {
       ComputeTemplateConsolidationData computeTemplateConsolidationData =
-              unifiedCompositionData.getComputeTemplateConsolidationData();
+          unifiedCompositionData.getComputeTemplateConsolidationData();
       cleanServiceTemplate(serviceTemplate, computeTemplateConsolidationData, context);
 
       List<PortTemplateConsolidationData> portTemplateConsolidationDataList =
-              getPortTemplateConsolidationDataList(unifiedCompositionData);
+          getPortTemplateConsolidationDataList(unifiedCompositionData);
       for (PortTemplateConsolidationData portTemplateConsolidationData :
-              portTemplateConsolidationDataList) {
+          portTemplateConsolidationDataList) {
         cleanServiceTemplate(serviceTemplate, portTemplateConsolidationData, context);
       }
     }
@@ -334,8 +334,8 @@ public class UnifiedCompositionService {
                              TranslationContext context) {
     for (UnifiedCompositionData unifiedData : unifiedCompositionDataList) {
       removeCleanedNodeType(
-              unifiedData.getComputeTemplateConsolidationData().getNodeTemplateId(), serviceTemplate,
-              context);
+          unifiedData.getComputeTemplateConsolidationData().getNodeTemplateId(), serviceTemplate,
+          context);
     }
     if (MapUtils.isEmpty(serviceTemplate.getNode_types())) {
       serviceTemplate.setNode_types(null);
@@ -354,16 +354,16 @@ public class UnifiedCompositionService {
 
     String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
     UnifiedSubstitutionData unifiedSubstitutionData = context.getUnifiedSubstitutionData()
-            .get(serviceTemplateFileName);
+        .get(serviceTemplateFileName);
 
     if (Objects.nonNull(unifiedSubstitutionData)) {
       //Handle get attribute in connectivity for abstarct node to abstract node templates
       Set<String> abstractNodeIds =
-              new HashSet<>(unifiedSubstitutionData.getAllRelatedAbstractNodeIds());
+          new HashSet<>(unifiedSubstitutionData.getAllRelatedAbstractNodeIds());
       handleGetAttrInConnectivity(serviceTemplate, abstractNodeIds, context);
       //Handle get attribute in connectivity for abstract node templates to nested node template
       Set<String> nestedNodeIds =
-              new HashSet<>(unifiedSubstitutionData.getAllUnifiedNestedNodeTemplateIds());
+          new HashSet<>(unifiedSubstitutionData.getAllUnifiedNestedNodeTemplateIds());
       handleGetAttrInConnectivity(serviceTemplate, nestedNodeIds, context);
     }
   }
@@ -382,19 +382,19 @@ public class UnifiedCompositionService {
                                             TranslationContext context) {
     handleUnifiedNestedNodeType(mainServiceTemplate, nestedServiceTemplate, context);
     updateUnifiedNestedTemplates(mainServiceTemplate, nestedServiceTemplate,
-            unifiedCompositionData, context);
+        unifiedCompositionData, context);
   }
 
   private void handleGetAttrInConnectivity(ServiceTemplate serviceTemplate,
                                            Set<String> unifiedNodeIds,
                                            TranslationContext context) {
     Map<String, NodeTemplate> nodeTemplates =
-            serviceTemplate.getTopology_template().getNode_templates();
+        serviceTemplate.getTopology_template().getNode_templates();
     String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
     for (String unifiedNodeId : unifiedNodeIds) {
       NodeTemplate nodeTemplate = nodeTemplates.get(unifiedNodeId);
       handleGetAttrInAbstractNodeTemplate(serviceTemplate, context, serviceTemplateFileName,
-              nodeTemplate);
+          nodeTemplate);
     }
   }
 
@@ -404,30 +404,30 @@ public class UnifiedCompositionService {
 
 
     SubstitutionMapping substitutionMappings =
-            nestedServiceTemplate.getTopology_template().getSubstitution_mappings();
+        nestedServiceTemplate.getTopology_template().getSubstitution_mappings();
     String nodeTypeId = substitutionMappings.getNode_type();
 
     Optional<String> newNestedNodeTypeId =
-            getNewNestedNodeTypeId(mainServiceTemplate, nestedServiceTemplate, context);
+        getNewNestedNodeTypeId(mainServiceTemplate, nestedServiceTemplate, context);
 
     ServiceTemplate globalSubstitutionServiceTemplate =
-            context.getGlobalSubstitutionServiceTemplate();
+        context.getGlobalSubstitutionServiceTemplate();
 
     if (isNestedServiceTemplateWasHandled(globalSubstitutionServiceTemplate, nestedServiceTemplate,
-            context,
-            newNestedNodeTypeId)) {
+        context,
+        newNestedNodeTypeId)) {
       context
-              .updateHandledComputeType(ToscaUtil.getServiceTemplateFileName(mainServiceTemplate),
-                      newNestedNodeTypeId.get(),
-                      ToscaUtil.getServiceTemplateFileName(nestedServiceTemplate));
+          .updateHandledComputeType(ToscaUtil.getServiceTemplateFileName(mainServiceTemplate),
+              newNestedNodeTypeId.get(),
+              ToscaUtil.getServiceTemplateFileName(nestedServiceTemplate));
       return;
     }
 
 
     newNestedNodeTypeId.ifPresent(
-            newNestedNodeTypeIdVal -> handleNestedNodeType(nodeTypeId, newNestedNodeTypeIdVal,
-                    nestedServiceTemplate, mainServiceTemplate, globalSubstitutionServiceTemplate,
-                    context));
+        newNestedNodeTypeIdVal -> handleNestedNodeType(nodeTypeId, newNestedNodeTypeIdVal,
+            nestedServiceTemplate, mainServiceTemplate, globalSubstitutionServiceTemplate,
+            context));
 
   }
 
@@ -436,9 +436,9 @@ public class UnifiedCompositionService {
                                                     TranslationContext context,
                                                     Optional<String> newNestedNodeTypeId) {
     return newNestedNodeTypeId.isPresent()
-            && context.isNestedServiceTemplateWasHandled(
-            ToscaUtil.getServiceTemplateFileName(mainServiceTemplate),
-            ToscaUtil.getServiceTemplateFileName(nestedServiceTemplate));
+        && context.isNestedServiceTemplateWasHandled(
+        ToscaUtil.getServiceTemplateFileName(mainServiceTemplate),
+        ToscaUtil.getServiceTemplateFileName(nestedServiceTemplate));
   }
 
   private void handleNestedNodeType(String nodeTypeId, String newNestedNodeTypeId,
@@ -448,8 +448,8 @@ public class UnifiedCompositionService {
                                     TranslationContext context) {
     updateNestedServiceTemplate(nestedServiceTemplate, context);
     updateNestedNodeType(nodeTypeId, newNestedNodeTypeId, nestedServiceTemplate,
-            mainServiceTemplate,
-            globalSubstitutionServiceTemplate, context);
+        mainServiceTemplate,
+        globalSubstitutionServiceTemplate, context);
 
 
   }
@@ -462,24 +462,24 @@ public class UnifiedCompositionService {
   private void enrichPortProperties(ServiceTemplate nestedServiceTemplate,
                                     TranslationContext context) {
     String nestedServiceTemplateFileName =
-            ToscaUtil.getServiceTemplateFileName(nestedServiceTemplate);
+        ToscaUtil.getServiceTemplateFileName(nestedServiceTemplate);
     FilePortConsolidationData filePortConsolidationData =
-            context.getConsolidationData().getPortConsolidationData().getFilePortConsolidationData
-                    (nestedServiceTemplateFileName);
+        context.getConsolidationData().getPortConsolidationData().getFilePortConsolidationData
+            (nestedServiceTemplateFileName);
 
     if (Objects.nonNull(filePortConsolidationData)) {
       Set<String> portNodeTemplateIds = filePortConsolidationData.getAllPortNodeTemplateIds();
       if (Objects.nonNull(portNodeTemplateIds)) {
         for (String portNodeTemplateId : portNodeTemplateIds) {
           NodeTemplate portNodeTemplate = DataModelUtil.getNodeTemplate(nestedServiceTemplate,
-                  portNodeTemplateId);
+              portNodeTemplateId);
           List<EntityConsolidationData> portEntityConsolidationDataList = new ArrayList<>();
           portEntityConsolidationDataList.add(filePortConsolidationData
-                  .getPortTemplateConsolidationData(portNodeTemplateId));
+              .getPortTemplateConsolidationData(portNodeTemplateId));
 
           handleNodeTypeProperties(nestedServiceTemplate,
-                  portEntityConsolidationDataList, portNodeTemplate, UnifiedCompositionEntity.Port,
-                  null, context);
+              portEntityConsolidationDataList, portNodeTemplate, UnifiedCompositionEntity.Port,
+              null, context);
         }
       }
     }
@@ -491,12 +491,12 @@ public class UnifiedCompositionService {
                                     ServiceTemplate globalSubstitutionServiceTemplate,
                                     TranslationContext context) {
     String indexedNewNestedNodeTypeId =
-            updateNodeTypeId(nodeTypeId, newNestedNodeTypeId, nestedServiceTemplate,
-                    mainServiceTemplate,
-                    globalSubstitutionServiceTemplate, context);
+        updateNodeTypeId(nodeTypeId, newNestedNodeTypeId, nestedServiceTemplate,
+            mainServiceTemplate,
+            globalSubstitutionServiceTemplate, context);
 
     updateNodeTypeProperties(nestedServiceTemplate, globalSubstitutionServiceTemplate,
-            indexedNewNestedNodeTypeId);
+        indexedNewNestedNodeTypeId);
     //addComputeNodeTypeToGlobalST();
 
   }
@@ -506,12 +506,12 @@ public class UnifiedCompositionService {
                                         String nodeTypeId) {
     ToscaAnalyzerService toscaAnalyzerService = new ToscaAnalyzerServiceImpl();
     Map<String, PropertyDefinition> nodeTypePropertiesDefinition =
-            toscaAnalyzerService.manageSubstitutionNodeTypeProperties(nestedServiceTemplate);
+        toscaAnalyzerService.manageSubstitutionNodeTypeProperties(nestedServiceTemplate);
     NodeType nestedNodeType =
-            DataModelUtil.getNodeType(globalSubstitutionServiceTemplate, nodeTypeId);
+        DataModelUtil.getNodeType(globalSubstitutionServiceTemplate, nodeTypeId);
     nestedNodeType.setProperties(nodeTypePropertiesDefinition);
     addComputeNodeTypeToGlobalST(nestedServiceTemplate.getNode_types().keySet().iterator().next()
-            , nestedServiceTemplate, globalSubstitutionServiceTemplate, nestedNodeType);
+        , nestedServiceTemplate, globalSubstitutionServiceTemplate, nestedNodeType);
   }
 
   private String updateNodeTypeId(String nodeTypeId, String newNestedNodeTypeId,
@@ -520,17 +520,17 @@ public class UnifiedCompositionService {
                                   ServiceTemplate globalSubstitutionServiceTemplate,
                                   TranslationContext context) {
     String indexedNewNestedNodeTypeId =
-            handleNestedNodeTypeInGlobalSubstitutionTemplate(nodeTypeId, newNestedNodeTypeId,
-                    globalSubstitutionServiceTemplate, context);
+        handleNestedNodeTypeInGlobalSubstitutionTemplate(nodeTypeId, newNestedNodeTypeId,
+            globalSubstitutionServiceTemplate, context);
 
     handleSubstitutionMappingInNestedServiceTemplate(indexedNewNestedNodeTypeId,
-            nestedServiceTemplate, context);
+        nestedServiceTemplate, context);
 
     context
-            .updateHandledComputeType(
-                    ToscaUtil.getServiceTemplateFileName(mainServiceTemplate),
-                    ToscaUtil.getServiceTemplateFileName(nestedServiceTemplate),
-                    newNestedNodeTypeId);
+        .updateHandledComputeType(
+            ToscaUtil.getServiceTemplateFileName(mainServiceTemplate),
+            ToscaUtil.getServiceTemplateFileName(nestedServiceTemplate),
+            newNestedNodeTypeId);
     return indexedNewNestedNodeTypeId;
   }
 
@@ -539,23 +539,23 @@ public class UnifiedCompositionService {
                                                                   ServiceTemplate globalSubstitutionServiceTemplate,
                                                                   TranslationContext context) {
     String indexedNodeType =
-            getIndexedGlobalNodeTypeId(newNestedNodeTypeId, context);
+        getIndexedGlobalNodeTypeId(newNestedNodeTypeId, context);
     context.updateUsedTimesForNestedComputeNodeType(
-            ToscaUtil.getServiceTemplateFileName(globalSubstitutionServiceTemplate),
-            newNestedNodeTypeId);
+        ToscaUtil.getServiceTemplateFileName(globalSubstitutionServiceTemplate),
+        newNestedNodeTypeId);
     handleNestedNodeTypesInGlobalSubstituteServiceTemplate(nodeTypeId, indexedNodeType,
-            globalSubstitutionServiceTemplate, context);
+        globalSubstitutionServiceTemplate, context);
     return indexedNodeType;
   }
 
   private String getIndexedGlobalNodeTypeId(String newNestedNodeTypeId,
                                             TranslationContext context) {
     int globalNodeTypeIndex =
-            context.getGlobalNodeTypeIndex(
-                    ToscaUtil.getServiceTemplateFileName(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME),
-                    newNestedNodeTypeId);
+        context.getGlobalNodeTypeIndex(
+            ToscaUtil.getServiceTemplateFileName(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME),
+            newNestedNodeTypeId);
     return globalNodeTypeIndex > 0 ? newNestedNodeTypeId + "_"
-            + String.valueOf(globalNodeTypeIndex) : newNestedNodeTypeId;
+        + String.valueOf(globalNodeTypeIndex) : newNestedNodeTypeId;
   }
 
   private void updateUnifiedNestedTemplates(ServiceTemplate mainServiceTemplate,
@@ -564,13 +564,13 @@ public class UnifiedCompositionService {
                                             TranslationContext context) {
 
     NestedTemplateConsolidationData nestedTemplateConsolidationData =
-            unifiedCompositionData.getNestedTemplateConsolidationData();
+        unifiedCompositionData.getNestedTemplateConsolidationData();
     if (Objects.isNull(nestedTemplateConsolidationData)) {
       return;
     }
     handleNestedNodeTemplateInMainServiceTemplate(
-            nestedTemplateConsolidationData.getNodeTemplateId(), mainServiceTemplate,
-            nestedServiceTemplate, context);
+        nestedTemplateConsolidationData.getNodeTemplateId(), mainServiceTemplate,
+        nestedServiceTemplate, context);
 
   }
 
@@ -588,11 +588,13 @@ public class UnifiedCompositionService {
                                               TranslationContext context) {
 
     updNestedCompositionNodesConnectedInConnectivity(serviceTemplate, unifiedCompositionData,
-            context);
+        context);
+    updNestedCompositionNodesConnectedOutConnectivity(serviceTemplate, nestedServiceTemplate,
+        unifiedCompositionData, context);
     updNestedCompositionNodesGetAttrInConnectivity(serviceTemplate, unifiedCompositionData,
-            context);
+        context);
     updNestedCompositionOutputParamGetAttrInConnectivity(serviceTemplate,
-            unifiedCompositionData, context);
+        unifiedCompositionData, context);
   }
 
 
@@ -607,21 +609,21 @@ public class UnifiedCompositionService {
                                          UnifiedCompositionData unifiedCompositionData,
                                          TranslationContext context) {
     EntityConsolidationData entityConsolidationData =
-            unifiedCompositionData.getNestedTemplateConsolidationData();
+        unifiedCompositionData.getNestedTemplateConsolidationData();
     updateHeatStackGroupNestedComposition(serviceTemplate, entityConsolidationData, context);
 
   }
 
   public void handleComplexVfcType(ServiceTemplate serviceTemplate, TranslationContext context) {
     SubstitutionMapping substitution_mappings =
-            serviceTemplate.getTopology_template().getSubstitution_mappings();
+        serviceTemplate.getTopology_template().getSubstitution_mappings();
 
     if (Objects.isNull(substitution_mappings)) {
       return;
     }
 
     ServiceTemplate globalSubstitutionServiceTemplate =
-            context.getGlobalSubstitutionServiceTemplate();
+        context.getGlobalSubstitutionServiceTemplate();
 
     String substitutionNT = substitution_mappings.getNode_type();
     if (globalSubstitutionServiceTemplate.getNode_types().containsKey(substitutionNT)) {
@@ -634,63 +636,93 @@ public class UnifiedCompositionService {
 
   protected void updNodesConnectedOutConnectivity(ServiceTemplate serviceTemplate,
                                                   List<UnifiedCompositionData>
-                                                          unifiedCompositionDataList,
+                                                      unifiedCompositionDataList,
                                                   TranslationContext context) {
     for (UnifiedCompositionData unifiedCompositionData : unifiedCompositionDataList) {
       ComputeTemplateConsolidationData computeTemplateConsolidationData = unifiedCompositionData
-              .getComputeTemplateConsolidationData();
+          .getComputeTemplateConsolidationData();
       //Add requirements in the abstract node template for nodes connected out for computes
       String newComputeNodeTemplateId = getNewComputeNodeTemplateId(serviceTemplate,
-              computeTemplateConsolidationData.getNodeTemplateId());
+          computeTemplateConsolidationData.getNodeTemplateId());
       Map<String, List<RequirementAssignmentData>> computeNodesConnectedOut =
-              computeTemplateConsolidationData.getNodesConnectedOut();
+          computeTemplateConsolidationData.getNodesConnectedOut();
       if (computeNodesConnectedOut != null) {
         updateRequirementInAbstractNodeTemplate(serviceTemplate, computeTemplateConsolidationData,
-                newComputeNodeTemplateId, computeNodesConnectedOut, context);
+            newComputeNodeTemplateId, computeNodesConnectedOut, context);
       }
       String computeType = getComputeTypeSuffix(serviceTemplate, computeTemplateConsolidationData
-              .getNodeTemplateId());
+          .getNodeTemplateId());
       //Add requirements in the abstract node template for nodes connected out for ports
       List<PortTemplateConsolidationData> portTemplateConsolidationDataList =
-              getPortTemplateConsolidationDataList(unifiedCompositionData);
+          getPortTemplateConsolidationDataList(unifiedCompositionData);
       for (PortTemplateConsolidationData portTemplateConsolidationData :
-              portTemplateConsolidationDataList) {
+          portTemplateConsolidationDataList) {
         String newPortNodeTemplateId = getNewPortNodeTemplateId(portTemplateConsolidationData
-                .getNodeTemplateId(), computeType, computeTemplateConsolidationData);
+            .getNodeTemplateId(), computeType, computeTemplateConsolidationData);
         Map<String, List<RequirementAssignmentData>> portNodesConnectedOut =
-                portTemplateConsolidationData.getNodesConnectedOut();
+            portTemplateConsolidationData.getNodesConnectedOut();
         if (portNodesConnectedOut != null) {
           updateRequirementInAbstractNodeTemplate(serviceTemplate, portTemplateConsolidationData,
-                  newPortNodeTemplateId, portNodesConnectedOut, context);
+              newPortNodeTemplateId, portNodesConnectedOut, context);
         }
       }
     }
   }
 
+  private void updNestedCompositionNodesConnectedOutConnectivity(ServiceTemplate serviceTemplate,
+                                                                 ServiceTemplate nestedServiceTemplate,
+                                                                 UnifiedCompositionData unifiedCompositionData,
+                                                                 TranslationContext context) {
+    NestedTemplateConsolidationData nestedTemplateConsolidationData = unifiedCompositionData.getNestedTemplateConsolidationData();
+    Map<String, List<RequirementAssignmentData>> nodesConnectedOut =
+        Objects.isNull(nestedTemplateConsolidationData) ? new HashMap<>()
+            : nestedTemplateConsolidationData.getNodesConnectedOut();
+
+    FileComputeConsolidationData nestedFileComputeConsolidationData =
+        context.getConsolidationData().getComputeConsolidationData().getFileComputeConsolidationData
+            (ToscaUtil.getServiceTemplateFileName(nestedServiceTemplate));
+
+    if(Objects.isNull(nestedFileComputeConsolidationData)){
+      return;
+    }
+
+    TypeComputeConsolidationData computeType =
+        nestedFileComputeConsolidationData.getAllTypeComputeConsolidationData().iterator().next();
+    if(Objects.isNull(computeType)){
+      return;
+    }
+
+    String singleComputeId = computeType.getAllComputeNodeTemplateIds().iterator().next();
+    if(Objects.nonNull(singleComputeId)) {
+      updateRequirementInNestedNodeTemplate(serviceTemplate, nestedTemplateConsolidationData,
+          singleComputeId, nodesConnectedOut);
+    }
+  }
+
   protected void updNodesConnectedInConnectivity(ServiceTemplate serviceTemplate,
                                                  List<UnifiedCompositionData>
-                                                         unifiedCompositionDataList,
+                                                     unifiedCompositionDataList,
                                                  TranslationContext context) {
     for (UnifiedCompositionData unifiedCompositionData : unifiedCompositionDataList) {
       ComputeTemplateConsolidationData computeTemplateConsolidationData = unifiedCompositionData
-              .getComputeTemplateConsolidationData();
+          .getComputeTemplateConsolidationData();
       //Update requirements in the node template which pointing to the computes
       String newComputeNodeTemplateId = getNewComputeNodeTemplateId(serviceTemplate,
-              computeTemplateConsolidationData.getNodeTemplateId());
+          computeTemplateConsolidationData.getNodeTemplateId());
       updNodesConnectedInConnectivity(serviceTemplate, computeTemplateConsolidationData,
-              newComputeNodeTemplateId, context, false);
+          newComputeNodeTemplateId, context, false);
 
       String computeType = getComputeTypeSuffix(serviceTemplate, computeTemplateConsolidationData
-              .getNodeTemplateId());
+          .getNodeTemplateId());
       //Update requirements in the node template which pointing to the ports
       List<PortTemplateConsolidationData> portTemplateConsolidationDataList =
-              getPortTemplateConsolidationDataList(unifiedCompositionData);
+          getPortTemplateConsolidationDataList(unifiedCompositionData);
       for (PortTemplateConsolidationData portTemplateConsolidationData :
-              portTemplateConsolidationDataList) {
+          portTemplateConsolidationDataList) {
         String newPortNodeTemplateId = getNewPortNodeTemplateId(portTemplateConsolidationData
-                .getNodeTemplateId(), computeType, computeTemplateConsolidationData);
+            .getNodeTemplateId(), computeType, computeTemplateConsolidationData);
         updNodesConnectedInConnectivity(serviceTemplate, portTemplateConsolidationData,
-                newPortNodeTemplateId, context, false);
+            newPortNodeTemplateId, context, false);
       }
     }
   }
@@ -701,19 +733,19 @@ public class UnifiedCompositionService {
                                                TranslationContext context,
                                                boolean isNested) {
     Map<String, List<RequirementAssignmentData>> nodesConnectedIn =
-            entityConsolidationData.getNodesConnectedIn();
+        entityConsolidationData.getNodesConnectedIn();
     if (nodesConnectedIn == null) {
       //No nodes connected in info
       return;
     }
     for (Map.Entry<String, List<RequirementAssignmentData>> entry : nodesConnectedIn
-            .entrySet()) {
+        .entrySet()) {
       List<RequirementAssignmentData> requirementAssignmentDataList = entry.getValue();
       for (RequirementAssignmentData requirementAssignmentData : requirementAssignmentDataList) {
         RequirementAssignment requirementAssignment = requirementAssignmentData
-                .getRequirementAssignment();
+            .getRequirementAssignment();
         if (!requirementAssignment.getNode().equals(entityConsolidationData
-                .getNodeTemplateId())) {
+            .getNodeTemplateId())) {
           //The requirement assignment target node should be the one which we are handling in the
           //consolidation object
           continue;
@@ -721,10 +753,10 @@ public class UnifiedCompositionService {
         //Update the requirement assignment object in the original node template
         if (isNested) {
           updateRequirementForNestedCompositionNodesConnectedIn(serviceTemplate,
-                  requirementAssignmentData, entityConsolidationData, newNodeTemplateId, context);
+              requirementAssignmentData, entityConsolidationData, newNodeTemplateId, context);
         } else {
           updateRequirementForNodesConnectedIn(serviceTemplate, requirementAssignmentData,
-                  entityConsolidationData, entry.getKey(), newNodeTemplateId, context);
+              entityConsolidationData, entry.getKey(), newNodeTemplateId, context);
         }
 
       }
@@ -732,76 +764,93 @@ public class UnifiedCompositionService {
   }
 
   protected void updNestedCompositionNodesConnectedInConnectivity(
-          ServiceTemplate serviceTemplate,
-          UnifiedCompositionData unifiedCompositionData,
-          TranslationContext context) {
+      ServiceTemplate serviceTemplate,
+      UnifiedCompositionData unifiedCompositionData,
+      TranslationContext context) {
     NestedTemplateConsolidationData nestedTemplateConsolidationData = unifiedCompositionData
-            .getNestedTemplateConsolidationData();
+        .getNestedTemplateConsolidationData();
     //Update requirements in the node template which pointing to the nested nodes
     String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
     Optional<String> newNestedNodeTemplateId = context.getUnifiedNestedNodeTemplateId(
-            serviceTemplateFileName, nestedTemplateConsolidationData.getNodeTemplateId());
+        serviceTemplateFileName, nestedTemplateConsolidationData.getNodeTemplateId());
     newNestedNodeTemplateId.ifPresent(
-            newNestedNodeTemplateIdVal -> updNodesConnectedInConnectivity(serviceTemplate,
-                    nestedTemplateConsolidationData,
-                    newNestedNodeTemplateIdVal, context, true));
-
-  }
+        newNestedNodeTemplateIdVal -> updNodesConnectedInConnectivity(serviceTemplate,
+            nestedTemplateConsolidationData,
+            newNestedNodeTemplateIdVal, context, true));
+
+  }
+
+//  protected void updNestedCompositionNodesConnectedOutConnectivity(
+//      ServiceTemplate serviceTemplate,
+//      UnifiedCompositionData unifiedCompositionData,
+//      TranslationContext context) {
+//    NestedTemplateConsolidationData nestedTemplateConsolidationData = unifiedCompositionData
+//        .getNestedTemplateConsolidationData();
+//    //Update requirements in the node template which pointing to the nested nodes
+//    String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
+//    Optional<String> newNestedNodeTemplateId = context.getUnifiedNestedNodeTemplateId(
+//        serviceTemplateFileName, nestedTemplateConsolidationData.getNodeTemplateId());
+//    newNestedNodeTemplateId.ifPresent(
+//        newNestedNodeTemplateIdVal -> updNodesConnectedOutConnectivity(serviceTemplate,
+//            nestedTemplateConsolidationData,
+//            newNestedNodeTemplateIdVal, context, true));
+//
+//  }
 
   protected void updVolumeConnectivity(ServiceTemplate serviceTemplate,
                                        List<UnifiedCompositionData>
-                                               unifiedCompositionDataList,
+                                           unifiedCompositionDataList,
                                        TranslationContext context) {
     for (UnifiedCompositionData unifiedCompositionData : unifiedCompositionDataList) {
       ComputeTemplateConsolidationData computeTemplateConsolidationData = unifiedCompositionData
-              .getComputeTemplateConsolidationData();
+          .getComputeTemplateConsolidationData();
       //Add requirements in the abstract node template for compute volumes
       String newComputeNodeTemplateId = getNewComputeNodeTemplateId(serviceTemplate,
-              computeTemplateConsolidationData.getNodeTemplateId());
+          computeTemplateConsolidationData.getNodeTemplateId());
       Map<String, List<RequirementAssignmentData>> computeVolumes =
-              computeTemplateConsolidationData.getVolumes();
+          computeTemplateConsolidationData.getVolumes();
       if (computeVolumes != null) {
         updateRequirementInAbstractNodeTemplate(serviceTemplate, computeTemplateConsolidationData,
-                newComputeNodeTemplateId, computeVolumes, context);
+            newComputeNodeTemplateId, computeVolumes, context);
       }
     }
   }
 
   protected void updGroupsConnectivity(ServiceTemplate serviceTemplate,
                                        List<UnifiedCompositionData>
-                                               unifiedCompositionDataList,
+                                           unifiedCompositionDataList,
                                        TranslationContext context) {
     for (UnifiedCompositionData unifiedCompositionData : unifiedCompositionDataList) {
       ComputeTemplateConsolidationData computeTemplateConsolidationData = unifiedCompositionData
-              .getComputeTemplateConsolidationData();
+          .getComputeTemplateConsolidationData();
       //Add requirements in the abstract node template for nodes connected in for computes
       String newComputeNodeTemplateId = getNewComputeNodeTemplateId(serviceTemplate,
-              computeTemplateConsolidationData.getNodeTemplateId());
+          computeTemplateConsolidationData.getNodeTemplateId());
       updGroupsConnectivity(serviceTemplate, computeTemplateConsolidationData, context);
 
       String computeType = getComputeTypeSuffix(serviceTemplate, computeTemplateConsolidationData
-              .getNodeTemplateId());
+          .getNodeTemplateId());
       //Add requirements in the abstract node template for nodes connected in for ports
       List<PortTemplateConsolidationData> portTemplateConsolidationDataList =
-              getPortTemplateConsolidationDataList(unifiedCompositionData);
+          getPortTemplateConsolidationDataList(unifiedCompositionData);
       for (PortTemplateConsolidationData portTemplateConsolidationData :
-              portTemplateConsolidationDataList) {
+          portTemplateConsolidationDataList) {
         String newPortNodeTemplateId = getNewPortNodeTemplateId(portTemplateConsolidationData
-                .getNodeTemplateId(), computeType, computeTemplateConsolidationData);
+            .getNodeTemplateId(), computeType, computeTemplateConsolidationData);
         updGroupsConnectivity(serviceTemplate, portTemplateConsolidationData, context);
       }
     }
   }
 
   private void updGroupsConnectivity(ServiceTemplate serviceTemplate, EntityConsolidationData
-          entityConsolidationData, TranslationContext context) {
+      entityConsolidationData, TranslationContext context) {
     List<String> groupIds = entityConsolidationData.getGroupIds();
     if (groupIds == null) {
       return;
     }
     String oldNodeTemplateId = entityConsolidationData.getNodeTemplateId();
     String abstractNodeTemplateId = context.getUnifiedAbstractNodeTemplateId(
-            serviceTemplate, entityConsolidationData.getNodeTemplateId());
+        serviceTemplate, entityConsolidationData.getNodeTemplateId());
     Map<String, GroupDefinition> groups = serviceTemplate.getTopology_template().getGroups();
     if (groups != null) {
       for (String groupId : groupIds) {
@@ -822,194 +871,194 @@ public class UnifiedCompositionService {
   }
 
   protected void updOutputParamGetAttrInConnectivity(
-          ServiceTemplate serviceTemplate, List<UnifiedCompositionData> unifiedComposotionDataList,
-          TranslationContext context) {
+      ServiceTemplate serviceTemplate, List<UnifiedCompositionData> unifiedComposotionDataList,
+      TranslationContext context) {
     for (UnifiedCompositionData unifiedCompositionData : unifiedComposotionDataList) {
       ComputeTemplateConsolidationData computeTemplateConsolidationData =
-              unifiedCompositionData.getComputeTemplateConsolidationData();
+          unifiedCompositionData.getComputeTemplateConsolidationData();
       String newComputeNodeTemplateId = getNewComputeNodeTemplateId(serviceTemplate,
-              computeTemplateConsolidationData.getNodeTemplateId());
+          computeTemplateConsolidationData.getNodeTemplateId());
 
       updOutputParamGetAttrInConnectivity(serviceTemplate, computeTemplateConsolidationData,
-              computeTemplateConsolidationData.getNodeTemplateId(), newComputeNodeTemplateId,
-              context, false);
+          computeTemplateConsolidationData.getNodeTemplateId(), newComputeNodeTemplateId,
+          context, false);
 
       String computeType =
-              getComputeTypeSuffix(serviceTemplate,
-                      computeTemplateConsolidationData.getNodeTemplateId());
+          getComputeTypeSuffix(serviceTemplate,
+              computeTemplateConsolidationData.getNodeTemplateId());
       List<PortTemplateConsolidationData> portTemplateConsolidationDataList =
-              getPortTemplateConsolidationDataList(unifiedCompositionData);
+          getPortTemplateConsolidationDataList(unifiedCompositionData);
       for (PortTemplateConsolidationData portTemplateConsolidationData :
-              portTemplateConsolidationDataList) {
+          portTemplateConsolidationDataList) {
         String newPortNodeTemplateId =
-                getNewPortNodeTemplateId(portTemplateConsolidationData.getNodeTemplateId(), computeType,
-                        computeTemplateConsolidationData);
+            getNewPortNodeTemplateId(portTemplateConsolidationData.getNodeTemplateId(), computeType,
+                computeTemplateConsolidationData);
 
         updOutputParamGetAttrInConnectivity(serviceTemplate, portTemplateConsolidationData,
-                portTemplateConsolidationData.getNodeTemplateId(), newPortNodeTemplateId, context,
-                false);
+            portTemplateConsolidationData.getNodeTemplateId(), newPortNodeTemplateId, context,
+            false);
       }
     }
   }
 
   protected void updNodesGetAttrInConnectivity(
-          ServiceTemplate serviceTemplate,
-          List<UnifiedCompositionData> unifiedComposotionDataList,
-          TranslationContext context) {
+      ServiceTemplate serviceTemplate,
+      List<UnifiedCompositionData> unifiedComposotionDataList,
+      TranslationContext context) {
     Map<String, UnifiedCompositionEntity> consolidationNodeTemplateIdAndType =
-            getAllConsolidationNodeTemplateIdAndType(unifiedComposotionDataList);
+        getAllConsolidationNodeTemplateIdAndType(unifiedComposotionDataList);
     for (UnifiedCompositionData unifiedCompositionData : unifiedComposotionDataList) {
       ComputeTemplateConsolidationData computeTemplateConsolidationData =
-              unifiedCompositionData.getComputeTemplateConsolidationData();
+          unifiedCompositionData.getComputeTemplateConsolidationData();
       String newComputeNodeTemplateId = getNewComputeNodeTemplateId(serviceTemplate,
-              computeTemplateConsolidationData.getNodeTemplateId());
+          computeTemplateConsolidationData.getNodeTemplateId());
 
       updNodeGetAttrInConnectivity(serviceTemplate, computeTemplateConsolidationData,
-              computeTemplateConsolidationData.getNodeTemplateId(),
-              newComputeNodeTemplateId, context, consolidationNodeTemplateIdAndType, false);
+          computeTemplateConsolidationData.getNodeTemplateId(),
+          newComputeNodeTemplateId, context, consolidationNodeTemplateIdAndType, false);
 
       String computeType =
-              getComputeTypeSuffix(serviceTemplate,
-                      computeTemplateConsolidationData.getNodeTemplateId());
+          getComputeTypeSuffix(serviceTemplate,
+              computeTemplateConsolidationData.getNodeTemplateId());
 
       List<PortTemplateConsolidationData> portTemplateConsolidationDataList =
-              getPortTemplateConsolidationDataList(unifiedCompositionData);
+          getPortTemplateConsolidationDataList(unifiedCompositionData);
       for (PortTemplateConsolidationData portTemplateConsolidationData :
-              portTemplateConsolidationDataList) {
+          portTemplateConsolidationDataList) {
         String newPotNodeTemplateId =
-                getNewPortNodeTemplateId(portTemplateConsolidationData.getNodeTemplateId(), computeType,
-                        computeTemplateConsolidationData);
+            getNewPortNodeTemplateId(portTemplateConsolidationData.getNodeTemplateId(), computeType,
+                computeTemplateConsolidationData);
 
         updNodeGetAttrInConnectivity(serviceTemplate, portTemplateConsolidationData,
-                portTemplateConsolidationData.getNodeTemplateId(),
-                newPotNodeTemplateId, context, consolidationNodeTemplateIdAndType, false);
+            portTemplateConsolidationData.getNodeTemplateId(),
+            newPotNodeTemplateId, context, consolidationNodeTemplateIdAndType, false);
       }
     }
   }
 
   protected void updNestedCompositionOutputParamGetAttrInConnectivity(
-          ServiceTemplate serviceTemplate, UnifiedCompositionData unifiedCompositionData,
-          TranslationContext context) {
+      ServiceTemplate serviceTemplate, UnifiedCompositionData unifiedCompositionData,
+      TranslationContext context) {
     NestedTemplateConsolidationData nestedTemplateConsolidationData =
-            unifiedCompositionData.getNestedTemplateConsolidationData();
+        unifiedCompositionData.getNestedTemplateConsolidationData();
     if (Objects.isNull(nestedTemplateConsolidationData)) {
       return;
     }
     String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
     Optional<String> newNestedNodeTemplateId = context.getUnifiedNestedNodeTemplateId(
-            serviceTemplateFileName, nestedTemplateConsolidationData.getNodeTemplateId());
+        serviceTemplateFileName, nestedTemplateConsolidationData.getNodeTemplateId());
 
     newNestedNodeTemplateId.ifPresent(
-            newNestedNodeTemplateIdVal -> updOutputParamGetAttrInConnectivity(serviceTemplate,
-                    nestedTemplateConsolidationData, nestedTemplateConsolidationData.getNodeTemplateId(),
-                    newNestedNodeTemplateIdVal, context, true));
+        newNestedNodeTemplateIdVal -> updOutputParamGetAttrInConnectivity(serviceTemplate,
+            nestedTemplateConsolidationData, nestedTemplateConsolidationData.getNodeTemplateId(),
+            newNestedNodeTemplateIdVal, context, true));
   }
 
   protected void updNestedCompositionNodesGetAttrInConnectivity(
-          ServiceTemplate serviceTemplate,
-          UnifiedCompositionData unifiedCompositionData,
-          TranslationContext context) {
+      ServiceTemplate serviceTemplate,
+      UnifiedCompositionData unifiedCompositionData,
+      TranslationContext context) {
     NestedTemplateConsolidationData nestedTemplateConsolidationData =
-            unifiedCompositionData.getNestedTemplateConsolidationData();
+        unifiedCompositionData.getNestedTemplateConsolidationData();
     if (Objects.isNull(nestedTemplateConsolidationData)) {
       return;
     }
     String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
     Optional<String> newNestedNodeTemplateId = context.getUnifiedNestedNodeTemplateId(
-            serviceTemplateFileName, nestedTemplateConsolidationData.getNodeTemplateId());
+        serviceTemplateFileName, nestedTemplateConsolidationData.getNodeTemplateId());
 
     newNestedNodeTemplateId.ifPresent(
-            newNestedNodeTemplateIdVal -> updNodeGetAttrInConnectivity(serviceTemplate,
-                    nestedTemplateConsolidationData, nestedTemplateConsolidationData.getNodeTemplateId(),
-                    newNestedNodeTemplateIdVal, context, null, true));
+        newNestedNodeTemplateIdVal -> updNodeGetAttrInConnectivity(serviceTemplate,
+            nestedTemplateConsolidationData, nestedTemplateConsolidationData.getNodeTemplateId(),
+            newNestedNodeTemplateIdVal, context, null, true));
   }
 
   private void updateRequirementForNodesConnectedIn(
-          ServiceTemplate serviceTemplate,
-          RequirementAssignmentData requirementAssignmentData,
-          EntityConsolidationData entityConsolidationData,
-          String originalNodeTemplateId,
-          String newNodeTemplateId,
-          TranslationContext context) {
+      ServiceTemplate serviceTemplate,
+      RequirementAssignmentData requirementAssignmentData,
+      EntityConsolidationData entityConsolidationData,
+      String originalNodeTemplateId,
+      String newNodeTemplateId,
+      TranslationContext context) {
     ToscaAnalyzerService toscaAnalyzerService = new ToscaAnalyzerServiceImpl();
     RequirementAssignment requirementAssignment = requirementAssignmentData
-            .getRequirementAssignment();
+        .getRequirementAssignment();
     String newAbstractUnifiedNodeTemplateId = context.getUnifiedAbstractNodeTemplateId(
-            serviceTemplate, entityConsolidationData.getNodeTemplateId());
+        serviceTemplate, entityConsolidationData.getNodeTemplateId());
     NodeTemplate abstractUnifiedNodeTemplate = DataModelUtil.getNodeTemplate(serviceTemplate,
-            newAbstractUnifiedNodeTemplateId);
+        newAbstractUnifiedNodeTemplateId);
     Optional<String> newCapabilityId = getNewCapabilityForNodesConnectedIn(serviceTemplate,
-            abstractUnifiedNodeTemplate, requirementAssignment, newNodeTemplateId, context);
+        abstractUnifiedNodeTemplate, requirementAssignment, newNodeTemplateId, context);
     if (newCapabilityId.isPresent()) {
       //Creating a copy of the requirement object and checking if it already exists in the
       // original node template
       RequirementAssignment requirementAssignmentCopy = (RequirementAssignment) getClonedObject(
-              requirementAssignmentData.getRequirementAssignment(), RequirementAssignment.class);
+          requirementAssignmentData.getRequirementAssignment(), RequirementAssignment.class);
       NodeTemplate originalNodeTemplate = DataModelUtil.getNodeTemplate(serviceTemplate,
-              originalNodeTemplateId);
+          originalNodeTemplateId);
       requirementAssignmentCopy.setCapability(newCapabilityId.get());
       requirementAssignmentCopy.setNode(newAbstractUnifiedNodeTemplateId);
       if (!toscaAnalyzerService.isRequirementExistInNodeTemplate(originalNodeTemplate,
-              requirementAssignmentData.getRequirementId(), requirementAssignmentCopy)) {
+          requirementAssignmentData.getRequirementId(), requirementAssignmentCopy)) {
         //Update the existing requirement
         requirementAssignmentData.getRequirementAssignment().setCapability(newCapabilityId
-                .get());
+            .get());
         requirementAssignmentData.getRequirementAssignment()
-                .setNode(newAbstractUnifiedNodeTemplateId);
+            .setNode(newAbstractUnifiedNodeTemplateId);
       } else {
         //The updated requirement already exists in the node template so simply remove the
         // current one
         DataModelUtil.removeRequirementAssignment(originalNodeTemplate, requirementAssignmentData
-                .getRequirementId(), requirementAssignmentData.getRequirementAssignment());
+            .getRequirementId(), requirementAssignmentData.getRequirementAssignment());
       }
     }
   }
 
   private void updateRequirementForNestedCompositionNodesConnectedIn(
-          ServiceTemplate serviceTemplate,
-          RequirementAssignmentData requirementAssignmentData,
-          EntityConsolidationData entityConsolidationData,
-          String newNodeTemplateId,
-          TranslationContext context) {
+      ServiceTemplate serviceTemplate,
+      RequirementAssignmentData requirementAssignmentData,
+      EntityConsolidationData entityConsolidationData,
+      String newNodeTemplateId,
+      TranslationContext context) {
     ToscaAnalyzerService toscaAnalyzerService = new ToscaAnalyzerServiceImpl();
     String newAbstractUnifiedNodeTemplateId = newNodeTemplateId;
     RequirementAssignment requirementAssignment = requirementAssignmentData
-            .getRequirementAssignment();
+        .getRequirementAssignment();
     //Creating a copy of the requirement object and checking if it already exists in the
     // original node template
     RequirementAssignment requirementAssignmentCopy = (RequirementAssignment) getClonedObject(
-            requirementAssignmentData.getRequirementAssignment(), RequirementAssignment.class);
+        requirementAssignmentData.getRequirementAssignment(), RequirementAssignment.class);
     NodeTemplate unifiedAbstractNestedNodeTemplate = DataModelUtil
-            .getNodeTemplate(serviceTemplate, newAbstractUnifiedNodeTemplateId);
+        .getNodeTemplate(serviceTemplate, newAbstractUnifiedNodeTemplateId);
     requirementAssignmentCopy.setCapability(requirementAssignment.getCapability());
     requirementAssignmentCopy.setNode(newAbstractUnifiedNodeTemplateId);
     if (!toscaAnalyzerService.isRequirementExistInNodeTemplate(unifiedAbstractNestedNodeTemplate,
-            requirementAssignmentData.getRequirementId(), requirementAssignmentCopy)) {
+        requirementAssignmentData.getRequirementId(), requirementAssignmentCopy)) {
       //Update the existing requirement
       requirementAssignmentData.getRequirementAssignment()
-              .setNode(newAbstractUnifiedNodeTemplateId);
+          .setNode(newAbstractUnifiedNodeTemplateId);
     } else {
       //The updated requirement already exists in the node template so simply remove the
       // current one
       DataModelUtil.removeRequirementAssignment(unifiedAbstractNestedNodeTemplate,
-              requirementAssignmentData.getRequirementId(), requirementAssignmentData
-                      .getRequirementAssignment());
+          requirementAssignmentData.getRequirementId(), requirementAssignmentData
+              .getRequirementAssignment());
     }
   }
 
   private Optional<String> getNewCapabilityForNodesConnectedIn(ServiceTemplate serviceTemplate,
                                                                NodeTemplate unifiedNodeTemplate,
                                                                RequirementAssignment
-                                                                       requirementAssignment,
+                                                                   requirementAssignment,
                                                                String newNodeTemplateId,
                                                                TranslationContext context) {
     ServiceTemplate globalSubstitutionServiceTemplate =
-            HeatToToscaUtil.fetchGlobalSubstitutionServiceTemplate(serviceTemplate, context);
+        HeatToToscaUtil.fetchGlobalSubstitutionServiceTemplate(serviceTemplate, context);
     Map<String, NodeType> nodeTypes = globalSubstitutionServiceTemplate.getNode_types();
     String unifiedNodeTemplateType = unifiedNodeTemplate.getType();
     NodeType unifiedNodeType = nodeTypes.get(unifiedNodeTemplateType);
     Map<String, CapabilityDefinition> abstractNodeTypeCapabilities = unifiedNodeType
-            .getCapabilities();
+        .getCapabilities();
     for (Map.Entry<String, CapabilityDefinition> entry : abstractNodeTypeCapabilities.entrySet()) {
       String capabilityId = entry.getKey();
       CapabilityDefinition capabilityDefinition = entry.getValue();
@@ -1027,18 +1076,18 @@ public class UnifiedCompositionService {
 
   private void updateRequirementInAbstractNodeTemplate(ServiceTemplate serviceTemplate,
                                                        EntityConsolidationData
-                                                               entityConsolidationData,
+                                                           entityConsolidationData,
                                                        String newNodeTemplateId,
                                                        Map<String, List<RequirementAssignmentData>>
-                                                               requirementAssignmentDataMap,
+                                                           requirementAssignmentDataMap,
                                                        TranslationContext context) {
     ToscaAnalyzerService toscaAnalyzerService = new ToscaAnalyzerServiceImpl();
     for (Map.Entry<String, List<RequirementAssignmentData>> entry : requirementAssignmentDataMap
-            .entrySet()) {
+        .entrySet()) {
       String abstractNodeTemplateId = context.getUnifiedAbstractNodeTemplateId(
-              serviceTemplate, entityConsolidationData.getNodeTemplateId());
+          serviceTemplate, entityConsolidationData.getNodeTemplateId());
       NodeTemplate abstractNodeTemplate = DataModelUtil.getNodeTemplate(serviceTemplate,
-              abstractNodeTemplateId);
+          abstractNodeTemplateId);
       if (abstractNodeTemplate == null) {
         //The abstract node template is not found from id in the context
         return;
@@ -1047,62 +1096,102 @@ public class UnifiedCompositionService {
       for (RequirementAssignmentData requirementAssignmentData : requirementAssignmentDataList) {
         String oldRequirementId = requirementAssignmentData.getRequirementId();
         RequirementAssignment abstractRequirementAssignment = (RequirementAssignment)
-                getClonedObject(requirementAssignmentData.getRequirementAssignment(),
-                        RequirementAssignment.class);
+            getClonedObject(requirementAssignmentData.getRequirementAssignment(),
+                RequirementAssignment.class);
         String newRequirementId = oldRequirementId + "_" + newNodeTemplateId;
         //Check if the requirement is not already present in the list of requirements of the
         // abstract node template
         if (!toscaAnalyzerService.isRequirementExistInNodeTemplate(abstractNodeTemplate,
-                newRequirementId, abstractRequirementAssignment)) {
+            newRequirementId, abstractRequirementAssignment)) {
           DataModelUtil.addRequirementAssignment(abstractNodeTemplate, newRequirementId,
-                  abstractRequirementAssignment);
+              abstractRequirementAssignment);
           //Update the volume relationship template if required
           updateVolumeRelationshipTemplate(serviceTemplate, abstractRequirementAssignment
-                  .getRelationship(), context);
+              .getRelationship(), context);
+        }
+      }
+    }
+  }
+
+  private void updateRequirementInNestedNodeTemplate(ServiceTemplate serviceTemplate,
+                                                     EntityConsolidationData
+                                                         entityConsolidationData,
+                                                     String newNodeTemplateId,
+                                                     Map<String, List<RequirementAssignmentData>>
+                                                         requirementAssignmentDataMap) {
+    ToscaAnalyzerService toscaAnalyzerService = new ToscaAnalyzerServiceImpl();
+
+    if(MapUtils.isEmpty(requirementAssignmentDataMap)){
+      return;
+    }
+
+    for (Map.Entry<String, List<RequirementAssignmentData>> entry : requirementAssignmentDataMap
+        .entrySet()) {
+      String nodeTemplateId = entityConsolidationData.getNodeTemplateId();
+      NodeTemplate nodeTemplate = DataModelUtil.getNodeTemplate(serviceTemplate, nodeTemplateId);
+      if (nodeTemplate == null) {
+        //The node template is not found from id in the context
+        return;
+      }
+      List<RequirementAssignmentData> requirementAssignmentDataList = entry.getValue();
+      for (RequirementAssignmentData requirementAssignmentData : requirementAssignmentDataList) {
+        String oldRequirementId = requirementAssignmentData.getRequirementId();
+        RequirementAssignment clonedRequirementAssignment = (RequirementAssignment)
+            getClonedObject(requirementAssignmentData.getRequirementAssignment(),
+                RequirementAssignment.class);
+        String newRequirementId = oldRequirementId + "_" + newNodeTemplateId;
+        //Check if the requirement is not already present in the list of requirements of the
+        // node template
+        if (!toscaAnalyzerService.isRequirementExistInNodeTemplate(nodeTemplate,
+            newRequirementId, clonedRequirementAssignment)) {
+          DataModelUtil.removeRequirementAssignment(nodeTemplate, oldRequirementId,
+              requirementAssignmentData.getRequirementAssignment());
+          DataModelUtil.addRequirementAssignment(nodeTemplate, newRequirementId,
+              clonedRequirementAssignment);
         }
       }
     }
   }
 
   private NodeTemplate getAbstractNodeTemplate(
-          ServiceTemplate serviceTemplate,
-          UnifiedCompositionEntity unifiedCompositionEntity,
-          ComputeTemplateConsolidationData computeTemplateConsolidationData,
-          PortTemplateConsolidationData portTemplateConsolidationData,
-          TranslationContext context) {
+      ServiceTemplate serviceTemplate,
+      UnifiedCompositionEntity unifiedCompositionEntity,
+      ComputeTemplateConsolidationData computeTemplateConsolidationData,
+      PortTemplateConsolidationData portTemplateConsolidationData,
+      TranslationContext context) {
     String abstractNodeTemplateId =
-            getAbstractNodeTemplateId(serviceTemplate, unifiedCompositionEntity,
-                    computeTemplateConsolidationData, portTemplateConsolidationData, context);
+        getAbstractNodeTemplateId(serviceTemplate, unifiedCompositionEntity,
+            computeTemplateConsolidationData, portTemplateConsolidationData, context);
 
     return DataModelUtil.getNodeTemplate(serviceTemplate,
-            abstractNodeTemplateId);
+        abstractNodeTemplateId);
   }
 
   private String getAbstractNodeTemplateId(
-          ServiceTemplate serviceTemplate,
-          UnifiedCompositionEntity unifiedCompositionEntity,
-          ComputeTemplateConsolidationData computeTemplateConsolidationData,
-          PortTemplateConsolidationData portTemplateConsolidationData,
-          TranslationContext context) {
+      ServiceTemplate serviceTemplate,
+      UnifiedCompositionEntity unifiedCompositionEntity,
+      ComputeTemplateConsolidationData computeTemplateConsolidationData,
+      PortTemplateConsolidationData portTemplateConsolidationData,
+      TranslationContext context) {
     switch (unifiedCompositionEntity) {
       case Compute:
         return context.getUnifiedAbstractNodeTemplateId(serviceTemplate,
-                computeTemplateConsolidationData.getNodeTemplateId());
+            computeTemplateConsolidationData.getNodeTemplateId());
       case Port:
         return context.getUnifiedAbstractNodeTemplateId(serviceTemplate,
-                portTemplateConsolidationData.getNodeTemplateId());
+            portTemplateConsolidationData.getNodeTemplateId());
       default:
         return null;
     }
   }
 
   private void updNodeGetAttrInConnectivity(
-          ServiceTemplate serviceTemplate,
-          EntityConsolidationData entityConsolidationData,
-          String oldNodeTemplateId, String newNodeTemplateId,
-          TranslationContext context,
-          Map<String, UnifiedCompositionEntity> consolidationNodeTemplateIdAndType,
-          boolean isNested) {
+      ServiceTemplate serviceTemplate,
+      EntityConsolidationData entityConsolidationData,
+      String oldNodeTemplateId, String newNodeTemplateId,
+      TranslationContext context,
+      Map<String, UnifiedCompositionEntity> consolidationNodeTemplateIdAndType,
+      boolean isNested) {
     Map<String, List<GetAttrFuncData>> nodesGetAttrIn = entityConsolidationData.getNodesGetAttrIn();
     if (MapUtils.isEmpty(nodesGetAttrIn)) {
       return;
@@ -1110,25 +1199,25 @@ public class UnifiedCompositionService {
 
     for (String sourceNodeTemplateId : nodesGetAttrIn.keySet()) {
       NodeTemplate sourceNodeTemplate =
-              DataModelUtil.getNodeTemplate(serviceTemplate, sourceNodeTemplateId);
+          DataModelUtil.getNodeTemplate(serviceTemplate, sourceNodeTemplateId);
       if (!isNested && consolidationNodeTemplateIdAndType.keySet().contains(sourceNodeTemplateId)) {
         continue;
       }
       List<GetAttrFuncData> getAttrFuncDataList = nodesGetAttrIn.get(sourceNodeTemplateId);
       for (GetAttrFuncData getAttrFuncData : getAttrFuncDataList) {
         Object propertyValue =
-                DataModelUtil.getPropertyValue(sourceNodeTemplate, getAttrFuncData.getFieldName());
+            DataModelUtil.getPropertyValue(sourceNodeTemplate, getAttrFuncData.getFieldName());
         String newAttrName = null;
         String newGetAttrAbstractNodeTemplateId = newNodeTemplateId;
         if (!isNested) {
           newGetAttrAbstractNodeTemplateId =
-                  context.getUnifiedAbstractNodeTemplateId(serviceTemplate, oldNodeTemplateId);
+              context.getUnifiedAbstractNodeTemplateId(serviceTemplate, oldNodeTemplateId);
           newAttrName = getNewSubstitutionOutputParameterId(newNodeTemplateId, getAttrFuncData
-                  .getAttributeName());
+              .getAttributeName());
         }
         List<List<Object>> getAttrFuncValueList = extractGetAttrFunction(propertyValue);
         updateGetAttrValue(oldNodeTemplateId, getAttrFuncData, newGetAttrAbstractNodeTemplateId,
-                newAttrName, getAttrFuncValueList, isNested);
+            newAttrName, getAttrFuncValueList, isNested);
       }
     }
   }
@@ -1138,7 +1227,7 @@ public class UnifiedCompositionService {
                                   List<List<Object>> getAttrFuncValueList, boolean isNested) {
     for (List<Object> getAttrFuncValue : getAttrFuncValueList) {
       if (oldNodeTemplateId.equals(getAttrFuncValue.get(0))
-              && getAttrFuncData.getAttributeName().equals(getAttrFuncValue.get(1))) {
+          && getAttrFuncData.getAttributeName().equals(getAttrFuncValue.get(1))) {
         getAttrFuncValue.set(0, newNodeTemplateId);
         if (!isNested) {
           getAttrFuncValue.set(1, newAttrName);
@@ -1152,7 +1241,7 @@ public class UnifiedCompositionService {
                                  String nodeTypeId,
                                  Integer index) {
     ComputeTemplateConsolidationData computeTemplateConsolidationData =
-            unifiedCompositionData.getComputeTemplateConsolidationData();
+        unifiedCompositionData.getComputeTemplateConsolidationData();
     String computeType = getComputeTypeSuffix(nodeTypeId);
     String templateName = "Nested_" + computeType;
     if (Objects.nonNull(index)) {
@@ -1164,7 +1253,7 @@ public class UnifiedCompositionService {
   private String getComputeTypeSuffix(ServiceTemplate serviceTemplate,
                                       String computeNodeTemplateId) {
     NodeTemplate computeNodeTemplate =
-            DataModelUtil.getNodeTemplate(serviceTemplate, computeNodeTemplateId);
+        DataModelUtil.getNodeTemplate(serviceTemplate, computeNodeTemplateId);
     return getComputeTypeSuffix(computeNodeTemplate.getType());
   }
 
@@ -1185,26 +1274,26 @@ public class UnifiedCompositionService {
                                                    TranslationContext context,
                                                    boolean isNested) {
     List<GetAttrFuncData> outputParametersGetAttrIn =
-            entityConsolidationData.getOutputParametersGetAttrIn();
+        entityConsolidationData.getOutputParametersGetAttrIn();
     if (CollectionUtils.isEmpty(outputParametersGetAttrIn)) {
       return;
     }
     for (GetAttrFuncData getAttrFuncData : outputParametersGetAttrIn) {
       Object outputParamValue =
-              DataModelUtil.getOuputParameter(serviceTemplate, getAttrFuncData.getFieldName())
-                      .getValue();
+          DataModelUtil.getOuputParameter(serviceTemplate, getAttrFuncData.getFieldName())
+              .getValue();
       String newAttrName = null;
       String newGetAttrAbstractNodeTemplateId = newNodeTemplateId;
       if (!isNested) {
         newGetAttrAbstractNodeTemplateId =
-                context.getUnifiedAbstractNodeTemplateId(serviceTemplate, oldNodeTemplateId);
+            context.getUnifiedAbstractNodeTemplateId(serviceTemplate, oldNodeTemplateId);
         newAttrName = getNewSubstitutionOutputParameterId(newNodeTemplateId, getAttrFuncData
-                .getAttributeName());
+            .getAttributeName());
       }
       List<List<Object>> getAttrFuncValueList = extractGetAttrFunction(outputParamValue);
       updateGetAttrValue(oldNodeTemplateId, getAttrFuncData, newGetAttrAbstractNodeTemplateId,
-              newAttrName,
-              getAttrFuncValueList, isNested);
+          newAttrName,
+          getAttrFuncValueList, isNested);
     }
 
   }
@@ -1216,7 +1305,7 @@ public class UnifiedCompositionService {
     if (valueObject instanceof Map) {
       if (((Map) valueObject).containsKey(ToscaFunctions.GET_ATTRIBUTE.getDisplayName())) {
         getAttrValueList.add(
-                (List<Object>) ((Map) valueObject).get(ToscaFunctions.GET_ATTRIBUTE.getDisplayName()));
+            (List<Object>) ((Map) valueObject).get(ToscaFunctions.GET_ATTRIBUTE.getDisplayName()));
       }
 
       for (Object key : ((Map) valueObject).keySet()) {
@@ -1264,41 +1353,41 @@ public class UnifiedCompositionService {
                                       String computeNodeType, TranslationContext context) {
 
     createOutputParametersForCompute(serviceTemplate, substitutionServiceTemplate,
-            unifiedCompositionDataList, context);
+        unifiedCompositionDataList, context);
     createOutputParameterForPorts(serviceTemplate, substitutionServiceTemplate,
-            unifiedCompositionDataList, computeNodeType, context);
+        unifiedCompositionDataList, computeNodeType, context);
   }
 
   private void createOutputParameterForPorts(
-          ServiceTemplate serviceTemplate,
-          ServiceTemplate substitutionServiceTemplate,
-          List<UnifiedCompositionData> unifiedCompositionDataList,
-          String connectedComputeNodeType,
-          TranslationContext context) {
+      ServiceTemplate serviceTemplate,
+      ServiceTemplate substitutionServiceTemplate,
+      List<UnifiedCompositionData> unifiedCompositionDataList,
+      String connectedComputeNodeType,
+      TranslationContext context) {
     for (UnifiedCompositionData unifiedCompositionData : unifiedCompositionDataList) {
       List<PortTemplateConsolidationData> portTemplateConsolidationDataList =
-              getPortTemplateConsolidationDataList(unifiedCompositionData);
+          getPortTemplateConsolidationDataList(unifiedCompositionData);
       if (CollectionUtils.isEmpty(portTemplateConsolidationDataList)) {
         return;
       }
 
       for (PortTemplateConsolidationData portTemplateConsolidationData :
-              portTemplateConsolidationDataList) {
+          portTemplateConsolidationDataList) {
         String newPortNodeTemplateId =
-                getNewPortNodeTemplateId(portTemplateConsolidationData.getNodeTemplateId(),
-                        connectedComputeNodeType,
-                        unifiedCompositionData.getComputeTemplateConsolidationData());
+            getNewPortNodeTemplateId(portTemplateConsolidationData.getNodeTemplateId(),
+                connectedComputeNodeType,
+                unifiedCompositionData.getComputeTemplateConsolidationData());
         addOutputParameters(portTemplateConsolidationData, newPortNodeTemplateId,
-                serviceTemplate, substitutionServiceTemplate, unifiedCompositionDataList, context);
+            serviceTemplate, substitutionServiceTemplate, unifiedCompositionDataList, context);
       }
     }
   }
 
   //The ID should be <vm_type>_<port_type> or <vm_type>_<portNodeTemplateId>
   private String getNewPortNodeTemplateId(
-          String portNodeTemplateId,
-          String connectedComputeNodeType,
-          ComputeTemplateConsolidationData computeTemplateConsolidationData) {
+      String portNodeTemplateId,
+      String connectedComputeNodeType,
+      ComputeTemplateConsolidationData computeTemplateConsolidationData) {
 
     StringBuilder newPortNodeTemplateId = new StringBuilder();
     String portType = ConsolidationDataUtil.getPortType(portNodeTemplateId);
@@ -1314,20 +1403,20 @@ public class UnifiedCompositionService {
   }
 
   private void createOutputParametersForCompute(
-          ServiceTemplate serviceTemplate,
-          ServiceTemplate substitutionServiceTemplate,
-          List<UnifiedCompositionData>
-                  unifiedCompositionDataList,
-          TranslationContext context) {
+      ServiceTemplate serviceTemplate,
+      ServiceTemplate substitutionServiceTemplate,
+      List<UnifiedCompositionData>
+          unifiedCompositionDataList,
+      TranslationContext context) {
     List<EntityConsolidationData> computeConsolidationDataList =
-            getComputeConsolidationDataList(unifiedCompositionDataList);
+        getComputeConsolidationDataList(unifiedCompositionDataList);
 
     for (EntityConsolidationData computeTemplateConsolidationData : computeConsolidationDataList) {
       String newComputeNodeTemplateId =
-              getNewComputeNodeTemplateId(serviceTemplate,
-                      computeTemplateConsolidationData.getNodeTemplateId());
+          getNewComputeNodeTemplateId(serviceTemplate,
+              computeTemplateConsolidationData.getNodeTemplateId());
       addOutputParameters(computeTemplateConsolidationData, newComputeNodeTemplateId,
-              serviceTemplate, substitutionServiceTemplate, unifiedCompositionDataList, context);
+          serviceTemplate, substitutionServiceTemplate, unifiedCompositionDataList, context);
     }
   }
 
@@ -1338,10 +1427,10 @@ public class UnifiedCompositionService {
                                    List<UnifiedCompositionData> unifiedCompositionDataList,
                                    TranslationContext context) {
     handleNodesGetAttrIn(entityConsolidationData, newNodeTemplateId, serviceTemplate,
-            substitutionServiceTemplate, unifiedCompositionDataList, context);
+        substitutionServiceTemplate, unifiedCompositionDataList, context);
 
     handleOutputParamGetAttrIn(entityConsolidationData, newNodeTemplateId, serviceTemplate,
-            substitutionServiceTemplate, context);
+        substitutionServiceTemplate, context);
   }
 
   private void handleOutputParamGetAttrIn(EntityConsolidationData entityConsolidationData,
@@ -1350,11 +1439,11 @@ public class UnifiedCompositionService {
                                           ServiceTemplate substitutionServiceTemplate,
                                           TranslationContext context) {
     List<GetAttrFuncData> outputParametersGetAttrIn =
-            entityConsolidationData.getOutputParametersGetAttrIn();
+        entityConsolidationData.getOutputParametersGetAttrIn();
     if (!CollectionUtils.isEmpty(outputParametersGetAttrIn)) {
       for (GetAttrFuncData getAttrFuncData : outputParametersGetAttrIn) {
         createAndAddOutputParameter(entityConsolidationData, newNodeTemplateId,
-                substitutionServiceTemplate, getAttrFuncData, context);
+            substitutionServiceTemplate, getAttrFuncData, context);
       }
     }
   }
@@ -1369,13 +1458,13 @@ public class UnifiedCompositionService {
 
     if (!MapUtils.isEmpty(getAttrIn)) {
       Map<String, UnifiedCompositionEntity> consolidationNodeTemplateIdAndType =
-              getAllConsolidationNodeTemplateIdAndType(unifiedCompositionDataList);
+          getAllConsolidationNodeTemplateIdAndType(unifiedCompositionDataList);
       for (String sourceNodeTemplateId : getAttrIn.keySet()) {
         if (!consolidationNodeTemplateIdAndType.keySet().contains(sourceNodeTemplateId)) {
           List<GetAttrFuncData> getAttrFuncDataList = getAttrIn.get(sourceNodeTemplateId);
           for (GetAttrFuncData getAttrFuncData : getAttrFuncDataList) {
             createAndAddOutputParameter(entityConsolidationData, newNodeTemplateId,
-                    substitutionServiceTemplate, getAttrFuncData, context);
+                substitutionServiceTemplate, getAttrFuncData, context);
           }
         }
       }
@@ -1395,10 +1484,10 @@ public class UnifiedCompositionService {
     ParameterDefinition outputParameter = new ParameterDefinition();
     outputParameter.setValue(parameterValue);
     setOutputParameterType(substitutionServiceTemplate, newNodeTemplateId, getAttrFuncData
-            .getAttributeName(), outputParameter, context);
+        .getAttributeName(), outputParameter, context);
     DataModelUtil.addOutputParameterToTopologyTemplate(substitutionServiceTemplate,
-            getNewSubstitutionOutputParameterId(newNodeTemplateId, getAttrFuncData.getAttributeName()),
-            outputParameter);
+        getNewSubstitutionOutputParameterId(newNodeTemplateId, getAttrFuncData.getAttributeName()),
+        outputParameter);
   }
 
   private void setOutputParameterType(ServiceTemplate substitutionServiceTemplate,
@@ -1407,16 +1496,16 @@ public class UnifiedCompositionService {
                                       ParameterDefinition outputParameter,
                                       TranslationContext context) {
     NodeTemplate nodeTemplate = DataModelUtil.getNodeTemplate(substitutionServiceTemplate,
-            newNodeTemplateId);
+        newNodeTemplateId);
     //Get the type and entry schema of the output parameter from the node type flat hierarchy
     String outputParameterType = null;
     EntrySchema outputParameterEntrySchema = null;
     NodeType nodeTypeWithFlatHierarchy =
-            HeatToToscaUtil.getNodeTypeWithFlatHierarchy(nodeTemplate.getType(),
-                    substitutionServiceTemplate, context);
+        HeatToToscaUtil.getNodeTypeWithFlatHierarchy(nodeTemplate.getType(),
+            substitutionServiceTemplate, context);
     //Check if the parameter is present in the attributes
     AttributeDefinition outputParameterDefinitionFromAttributes =
-            getOutputParameterDefinitionFromAttributes(nodeTypeWithFlatHierarchy, outputParameterName);
+        getOutputParameterDefinitionFromAttributes(nodeTypeWithFlatHierarchy, outputParameterName);
     if (Objects.nonNull(outputParameterDefinitionFromAttributes)) {
       outputParameterType = outputParameterDefinitionFromAttributes.getType();
       outputParameterEntrySchema = outputParameterDefinitionFromAttributes.getEntry_schema();
@@ -1425,7 +1514,7 @@ public class UnifiedCompositionService {
       // properties and global types are in sync. Ideally the parameter should be found in either
       // properties or attributes collected from global types
       PropertyDefinition outputParameterDefinitionFromProperties =
-              nodeTypeWithFlatHierarchy.getProperties().get(outputParameterName);
+          nodeTypeWithFlatHierarchy.getProperties().get(outputParameterName);
       outputParameterType = outputParameterDefinitionFromProperties.getType();
       outputParameterEntrySchema = outputParameterDefinitionFromProperties.getEntry_schema();
     }
@@ -1439,21 +1528,21 @@ public class UnifiedCompositionService {
                                           String inputParameterName,
                                           TranslationContext context) {
     NodeType nodeTypeWithFlatHierarchy =
-            HeatToToscaUtil.getNodeTypeWithFlatHierarchy(nodeTemplate.getType(),
-                    serviceTemplate, context);
+        HeatToToscaUtil.getNodeTypeWithFlatHierarchy(nodeTemplate.getType(),
+            serviceTemplate, context);
     String parameterType = nodeTypeWithFlatHierarchy.getProperties()
-            .get(inputParameterName).getType();
+        .get(inputParameterName).getType();
     return getUnifiedInputParameterType(parameterType);
   }
 
   private AttributeDefinition getOutputParameterDefinitionFromAttributes(NodeType
-                                                                                 nodeTypeWithFlatHierarchy,
+                                                                             nodeTypeWithFlatHierarchy,
                                                                          String outputParameterName) {
     AttributeDefinition outputParameterDefinition = null;
     if ((Objects.nonNull(nodeTypeWithFlatHierarchy.getAttributes()))
-            && (nodeTypeWithFlatHierarchy.getAttributes().containsKey(outputParameterName))) {
+        && (nodeTypeWithFlatHierarchy.getAttributes().containsKey(outputParameterName))) {
       outputParameterDefinition =
-              nodeTypeWithFlatHierarchy.getAttributes().get(outputParameterName);
+          nodeTypeWithFlatHierarchy.getAttributes().get(outputParameterName);
     }
     return outputParameterDefinition;
   }
@@ -1462,17 +1551,17 @@ public class UnifiedCompositionService {
     String unifiedInputParameterType = null;
     if (Objects.nonNull(parameterType)) {
       if (parameterType.equalsIgnoreCase(PropertyType.STRING.getDisplayName())
-              || parameterType.equalsIgnoreCase(PropertyType.INTEGER.getDisplayName())
-              || parameterType.equalsIgnoreCase(PropertyType.FLOAT.getDisplayName())
-              || parameterType.equalsIgnoreCase(PropertyType.BOOLEAN.getDisplayName())
-              || parameterType.equalsIgnoreCase(PropertyType.TIMESTAMP.getDisplayName())
-              || parameterType.equalsIgnoreCase(PropertyType.NULL.getDisplayName())
-              || parameterType.equalsIgnoreCase(PropertyType.SCALAR_UNIT_SIZE.getDisplayName())
-              || parameterType.equalsIgnoreCase(PropertyType.SCALAR_UNIT_FREQUENCY.getDisplayName())) {
+          || parameterType.equalsIgnoreCase(PropertyType.INTEGER.getDisplayName())
+          || parameterType.equalsIgnoreCase(PropertyType.FLOAT.getDisplayName())
+          || parameterType.equalsIgnoreCase(PropertyType.BOOLEAN.getDisplayName())
+          || parameterType.equalsIgnoreCase(PropertyType.TIMESTAMP.getDisplayName())
+          || parameterType.equalsIgnoreCase(PropertyType.NULL.getDisplayName())
+          || parameterType.equalsIgnoreCase(PropertyType.SCALAR_UNIT_SIZE.getDisplayName())
+          || parameterType.equalsIgnoreCase(PropertyType.SCALAR_UNIT_FREQUENCY.getDisplayName())) {
         unifiedInputParameterType = parameterType.toLowerCase();
       } else if (parameterType.equalsIgnoreCase(PropertyType.MAP.getDisplayName())
-              || parameterType.equalsIgnoreCase(PropertyType.LIST.getDisplayName())
-              || parameterType.equalsIgnoreCase(PropertyTypeExt.JSON.getDisplayName())) {
+          || parameterType.equalsIgnoreCase(PropertyType.LIST.getDisplayName())
+          || parameterType.equalsIgnoreCase(PropertyTypeExt.JSON.getDisplayName())) {
         unifiedInputParameterType = PropertyTypeExt.JSON.getDisplayName();
       } else {
         unifiedInputParameterType = parameterType;
@@ -1487,26 +1576,26 @@ public class UnifiedCompositionService {
   }
 
   private void addUnifiedSubstitionData(TranslationContext context, ServiceTemplate
-          serviceTemplate, List<UnifiedCompositionData> unifiedCompositionDataList, String
-                                                substituteNodeTemplateId) {
+      serviceTemplate, List<UnifiedCompositionData> unifiedCompositionDataList, String
+                                            substituteNodeTemplateId) {
     String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
     for (UnifiedCompositionData unifiedCompositionData : unifiedCompositionDataList) {
       //Add compute node template mapping information
       ComputeTemplateConsolidationData computeTemplateConsolidationData =
-              unifiedCompositionData.getComputeTemplateConsolidationData();
+          unifiedCompositionData.getComputeTemplateConsolidationData();
       String computeNodeTemplateId = computeTemplateConsolidationData.getNodeTemplateId();
       context.addUnifiedSubstitutionData(serviceTemplateFileName, computeNodeTemplateId,
-              substituteNodeTemplateId);
+          substituteNodeTemplateId);
       //Add Port template mapping information
       List<PortTemplateConsolidationData> portTemplateConsolidationDataList =
-              getPortTemplateConsolidationDataList(unifiedCompositionData);
+          getPortTemplateConsolidationDataList(unifiedCompositionData);
 
       if (CollectionUtils.isNotEmpty(portTemplateConsolidationDataList)) {
         for (PortTemplateConsolidationData portTemplateConsolidationData :
-                portTemplateConsolidationDataList) {
+            portTemplateConsolidationDataList) {
           String oldPortNodeTemplateId = portTemplateConsolidationData.getNodeTemplateId();
           context.addUnifiedSubstitutionData(serviceTemplateFileName, oldPortNodeTemplateId,
-                  substituteNodeTemplateId);
+              substituteNodeTemplateId);
         }
       }
     }
@@ -1521,9 +1610,9 @@ public class UnifiedCompositionService {
     Map<String, Object> indexPropertyValue = new HashMap<>();
     Map<String, Object> properties = nodeTemplate.getProperties();
     indexPropertyValue.put(ToscaFunctions.GET_PROPERTY.getDisplayName(),
-            indexValueGetPropertyValue);
+        indexValueGetPropertyValue);
     properties.put(ToscaConstants.INDEX_VALUE_PROPERTY_NAME,
-            indexPropertyValue);
+        indexPropertyValue);
     nodeTemplate.setProperties(properties);
   }
 
@@ -1532,11 +1621,11 @@ public class UnifiedCompositionService {
                                              String nodeTypeId,
                                              Integer index) {
     String computeNodeTemplateId =
-            unifiedCompositionData.getComputeTemplateConsolidationData().getNodeTemplateId();
+        unifiedCompositionData.getComputeTemplateConsolidationData().getNodeTemplateId();
     NodeTemplate computeNodeTemplate =
-            DataModelUtil.getNodeTemplate(serviceTemplate, computeNodeTemplateId);
+        DataModelUtil.getNodeTemplate(serviceTemplate, computeNodeTemplateId);
     String nodeTemplateId = ABSTRACT_NODE_TEMPLATE_ID_PREFIX + DataModelUtil
-            .getNamespaceSuffix(nodeTypeId);
+        .getNamespaceSuffix(nodeTypeId);
     if (Objects.nonNull(index)) {
       nodeTemplateId = nodeTemplateId + "_" + index.toString();
     }
@@ -1556,15 +1645,15 @@ public class UnifiedCompositionService {
                                           Integer index,
                                           TranslationContext context) {
     String computeNodeTemplateId =
-            unifiedCompositionData.getComputeTemplateConsolidationData().getNodeTemplateId();
+        unifiedCompositionData.getComputeTemplateConsolidationData().getNodeTemplateId();
     NodeTemplate computeNodeTemplate =
-            DataModelUtil.getNodeTemplate(serviceTemplate, computeNodeTemplateId);
+        DataModelUtil.getNodeTemplate(serviceTemplate, computeNodeTemplateId);
     String computeType = computeNodeTemplate.getType();
     String globalSTName = ToscaUtil.getServiceTemplateFileName(Constants
-            .GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME);
+        .GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME);
 
     String nodeTypeId = ToscaNodeType.ABSTRACT_NODE_TYPE_PREFIX
-            + DataModelUtil.getNamespaceSuffix(getIndexedGlobalNodeTypeId(computeType, context));
+        + DataModelUtil.getNamespaceSuffix(getIndexedGlobalNodeTypeId(computeType, context));
 
     context.updateUsedTimesForNestedComputeNodeType(globalSTName, computeType);
 
@@ -1575,8 +1664,8 @@ public class UnifiedCompositionService {
   }
 
   private String getNewComputeNodeTemplateId(
-          ServiceTemplate serviceTemplate,
-          String computeNodeTemplateId) {
+      ServiceTemplate serviceTemplate,
+      String computeNodeTemplateId) {
     return getComputeTypeSuffix(serviceTemplate, computeNodeTemplateId);
   }
 
@@ -1587,12 +1676,12 @@ public class UnifiedCompositionService {
                                                     String substitutionNodeTypeId,
                                                     Integer index) {
     NodeType substitutionNodeType = new ToscaAnalyzerServiceImpl()
-            .createInitSubstitutionNodeType(substitutionServiceTemplate,
-                    ToscaNodeType.VFC_ABSTRACT_SUBSTITUTE);
+        .createInitSubstitutionNodeType(substitutionServiceTemplate,
+            ToscaNodeType.VFC_ABSTRACT_SUBSTITUTE);
     ServiceTemplate globalSubstitutionServiceTemplate =
-            HeatToToscaUtil.fetchGlobalSubstitutionServiceTemplate(serviceTemplate, context);
+        HeatToToscaUtil.fetchGlobalSubstitutionServiceTemplate(serviceTemplate, context);
     DataModelUtil.addNodeType(globalSubstitutionServiceTemplate, substitutionNodeTypeId,
-            substitutionNodeType);
+        substitutionNodeType);
 
     return substitutionNodeType;
   }
@@ -1605,10 +1694,10 @@ public class UnifiedCompositionService {
 
     if (unifiedCompositionDataList.size() > 1) {
       handleConsolidationPorts(serviceTemplate, substitutionServiceTemplate,
-              unifiedCompositionDataList, connectedComputeNodeType, context);
+          unifiedCompositionDataList, connectedComputeNodeType, context);
     } else {
       handleSinglePorts(serviceTemplate, substitutionServiceTemplate, connectedComputeNodeType,
-              unifiedCompositionDataList, context);
+          unifiedCompositionDataList, context);
     }
   }
 
@@ -1619,18 +1708,18 @@ public class UnifiedCompositionService {
                                  TranslationContext context) {
     UnifiedCompositionData unifiedCompositionData = unifiedCompositionDataList.get(0);
     List<PortTemplateConsolidationData> portTemplateConsolidationDataList =
-            getPortTemplateConsolidationDataList(unifiedCompositionData);
+        getPortTemplateConsolidationDataList(unifiedCompositionData);
     if (CollectionUtils.isEmpty(portTemplateConsolidationDataList)) {
       return;
     }
     for (PortTemplateConsolidationData portTemplateConsolidationData :
-            portTemplateConsolidationDataList) {
+        portTemplateConsolidationDataList) {
       List<EntityConsolidationData> portConsolidationDataList = new ArrayList<>();
       portConsolidationDataList.add(portTemplateConsolidationData);
       handlePortNodeTemplate(serviceTemplate, substitutionServiceTemplate,
-              portConsolidationDataList, connectedComputeNodeType,
-              unifiedCompositionData.getComputeTemplateConsolidationData(),
-              unifiedCompositionDataList, context);
+          portConsolidationDataList, connectedComputeNodeType,
+          unifiedCompositionData.getComputeTemplateConsolidationData(),
+          unifiedCompositionDataList, context);
     }
   }
 
@@ -1640,62 +1729,62 @@ public class UnifiedCompositionService {
                                         String connectedComputeNodeType,
                                         TranslationContext context) {
     Collection<ComputeTemplateConsolidationData> computeConsolidationDataList =
-            (Collection) getComputeConsolidationDataList(unifiedCompositionDataList);
+        (Collection) getComputeConsolidationDataList(unifiedCompositionDataList);
 
     Map<String, Set<String>> portIdsPerPortType = UnifiedCompositionUtil
-            .collectAllPortsFromEachTypesFromComputes(computeConsolidationDataList);
+        .collectAllPortsFromEachTypesFromComputes(computeConsolidationDataList);
 
     for (String portType : portIdsPerPortType.keySet()) {
       List<EntityConsolidationData> portTemplateConsolidationDataList =
-              getPortConsolidationDataList(portIdsPerPortType.get(portType),
-                      unifiedCompositionDataList);
+          getPortConsolidationDataList(portIdsPerPortType.get(portType),
+              unifiedCompositionDataList);
       if (CollectionUtils.isEmpty(portTemplateConsolidationDataList)) {
         continue;
       }
 
       handlePortNodeTemplate(serviceTemplate, substitutionServiceTemplate,
-              portTemplateConsolidationDataList, connectedComputeNodeType,
-              unifiedCompositionDataList.get(0).getComputeTemplateConsolidationData(),
-              unifiedCompositionDataList, context);
+          portTemplateConsolidationDataList, connectedComputeNodeType,
+          unifiedCompositionDataList.get(0).getComputeTemplateConsolidationData(),
+          unifiedCompositionDataList, context);
     }
   }
 
   private void handlePortNodeTemplate(
-          ServiceTemplate serviceTemplate,
-          ServiceTemplate substitutionServiceTemplate,
-          List<EntityConsolidationData> portTemplateConsolidationDataList,
-          String connectedComputeNodeType,
-          ComputeTemplateConsolidationData computeTemplateConsolidationData,
-          List<UnifiedCompositionData> unifiedCompositionDataList,
-          TranslationContext context) {
+      ServiceTemplate serviceTemplate,
+      ServiceTemplate substitutionServiceTemplate,
+      List<EntityConsolidationData> portTemplateConsolidationDataList,
+      String connectedComputeNodeType,
+      ComputeTemplateConsolidationData computeTemplateConsolidationData,
+      List<UnifiedCompositionData> unifiedCompositionDataList,
+      TranslationContext context) {
     EntityConsolidationData portTemplateConsolidationData =
-            portTemplateConsolidationDataList.get(0);
+        portTemplateConsolidationDataList.get(0);
     NodeTemplate newPortNodeTemplate = getNodeTemplate(
-            portTemplateConsolidationData.getNodeTemplateId(), serviceTemplate, context).clone();
+        portTemplateConsolidationData.getNodeTemplateId(), serviceTemplate, context).clone();
 
     removeConnectivityOut(portTemplateConsolidationData, newPortNodeTemplate);
     handleProperties(serviceTemplate, newPortNodeTemplate,
-            substitutionServiceTemplate, UnifiedCompositionEntity.Port,
-            portTemplateConsolidationDataList, computeTemplateConsolidationData,
-            unifiedCompositionDataList, context);
+        substitutionServiceTemplate, UnifiedCompositionEntity.Port,
+        portTemplateConsolidationDataList, computeTemplateConsolidationData,
+        unifiedCompositionDataList, context);
 
     String newPortNodeTemplateId =
-            getNewPortNodeTemplateId(portTemplateConsolidationData
-                            .getNodeTemplateId(), connectedComputeNodeType,
-                    computeTemplateConsolidationData);
+        getNewPortNodeTemplateId(portTemplateConsolidationData
+                .getNodeTemplateId(), connectedComputeNodeType,
+            computeTemplateConsolidationData);
     //Update requirements for relationships between the consolidation entities
     handleConsolidationEntitiesRequirementConnectivity(newPortNodeTemplateId, newPortNodeTemplate,
-            serviceTemplate, context);
+        serviceTemplate, context);
     DataModelUtil.addNodeTemplate(substitutionServiceTemplate, newPortNodeTemplateId,
-            newPortNodeTemplate);
+        newPortNodeTemplate);
 
     //Add the node template mapping in the context for handling requirement updation
     for (EntityConsolidationData data : portTemplateConsolidationDataList) {
       String newPortTemplateId = getNewPortNodeTemplateId(data.getNodeTemplateId(),
-              connectedComputeNodeType, computeTemplateConsolidationData);
+          connectedComputeNodeType, computeTemplateConsolidationData);
       context.addSubstitutionServiceTemplateUnifiedSubstitutionData(ToscaUtil
-                      .getServiceTemplateFileName(serviceTemplate), data.getNodeTemplateId(),
-              newPortTemplateId);
+              .getServiceTemplateFileName(serviceTemplate), data.getNodeTemplateId(),
+          newPortTemplateId);
     }
 
   }
@@ -1707,8 +1796,8 @@ public class UnifiedCompositionService {
 
     if (Objects.isNull(nodeTemplate)) {
       nodeTemplate = context
-              .getCleanedNodeTemplate(ToscaUtil.getServiceTemplateFileName(serviceTemplate),
-                      nodeTemplateId);
+          .getCleanedNodeTemplate(ToscaUtil.getServiceTemplateFileName(serviceTemplate),
+              nodeTemplateId);
 
     }
     return nodeTemplate;
@@ -1720,27 +1809,27 @@ public class UnifiedCompositionService {
                                List<UnifiedCompositionData> unifiedCompositionDataList,
                                TranslationContext context) {
     ComputeTemplateConsolidationData computeTemplateConsolidationData =
-            unifiedCompositionDataList.get(0).getComputeTemplateConsolidationData();
+        unifiedCompositionDataList.get(0).getComputeTemplateConsolidationData();
     handleComputeNodeTemplate(serviceTemplate, substitutionServiceTemplate,
-            unifiedCompositionDataList, context);
+        unifiedCompositionDataList, context);
     ServiceTemplate globalSubstitutionServiceTemplate =
-            HeatToToscaUtil.fetchGlobalSubstitutionServiceTemplate(serviceTemplate, context);
+        HeatToToscaUtil.fetchGlobalSubstitutionServiceTemplate(serviceTemplate, context);
     return handleComputeNodeType(serviceTemplate, substitutionServiceTemplate, globalSubstitutionServiceTemplate,
-            computeTemplateConsolidationData);
+        computeTemplateConsolidationData);
   }
 
   private String handleComputeNodeType(
-          ServiceTemplate serviceTemplate,
-          ServiceTemplate substitutionServiceTemplate,
-          ServiceTemplate globalSubstitutionServiceTemplate,
-          ComputeTemplateConsolidationData computeTemplateConsolidationData) {
+      ServiceTemplate serviceTemplate,
+      ServiceTemplate substitutionServiceTemplate,
+      ServiceTemplate globalSubstitutionServiceTemplate,
+      ComputeTemplateConsolidationData computeTemplateConsolidationData) {
     NodeTemplate computeNodeTemplate = DataModelUtil.getNodeTemplate(serviceTemplate,
-            computeTemplateConsolidationData.getNodeTemplateId());
+        computeTemplateConsolidationData.getNodeTemplateId());
     String computeNodeTypeId = computeNodeTemplate.getType();
     NodeType computeNodeType =
-            DataModelUtil.getNodeType(serviceTemplate, computeNodeTypeId);
+        DataModelUtil.getNodeType(serviceTemplate, computeNodeTypeId);
     DataModelUtil
-            .addNodeType(substitutionServiceTemplate, computeNodeTypeId, computeNodeType);
+        .addNodeType(substitutionServiceTemplate, computeNodeTypeId, computeNodeType);
 //    NodeType globalNodeType = new ToscaAnalyzerServiceImpl()
 //        .createInitSubstitutionNodeType(substitutionServiceTemplate,
 //            computeNodeType.getDerived_from());
@@ -1755,46 +1844,46 @@ public class UnifiedCompositionService {
                                          List<UnifiedCompositionData> unifiedCompositionDataList,
                                          TranslationContext context) {
     ComputeTemplateConsolidationData computeTemplateConsolidationData =
-            unifiedCompositionDataList.get(0).getComputeTemplateConsolidationData();
+        unifiedCompositionDataList.get(0).getComputeTemplateConsolidationData();
     NodeTemplate newComputeNodeTemplate = DataModelUtil.getNodeTemplate(serviceTemplate,
-            computeTemplateConsolidationData.getNodeTemplateId()).clone();
+        computeTemplateConsolidationData.getNodeTemplateId()).clone();
 
     removeConnectivityOut(computeTemplateConsolidationData, newComputeNodeTemplate);
     removeVolumeConnectivity(computeTemplateConsolidationData, newComputeNodeTemplate);
 
     List<EntityConsolidationData> computeConsoliadtionDataList =
-            getComputeConsolidationDataList(unifiedCompositionDataList);
+        getComputeConsolidationDataList(unifiedCompositionDataList);
 
     handleProperties(serviceTemplate, newComputeNodeTemplate,
-            substitutionServiceTemplate, UnifiedCompositionEntity.Compute,
-            computeConsoliadtionDataList, computeTemplateConsolidationData, unifiedCompositionDataList,
-            context);
+        substitutionServiceTemplate, UnifiedCompositionEntity.Compute,
+        computeConsoliadtionDataList, computeTemplateConsolidationData, unifiedCompositionDataList,
+        context);
 
     String newComputeNodeTemplateId = getNewComputeNodeTemplateId(serviceTemplate,
-            computeTemplateConsolidationData.getNodeTemplateId());
+        computeTemplateConsolidationData.getNodeTemplateId());
     //Update requirements for relationships between the consolidation entities
     handleConsolidationEntitiesRequirementConnectivity(newComputeNodeTemplateId,
-            newComputeNodeTemplate,
-            serviceTemplate, context);
+        newComputeNodeTemplate,
+        serviceTemplate, context);
     DataModelUtil
-            .addNodeTemplate(substitutionServiceTemplate,
-                    newComputeNodeTemplateId, newComputeNodeTemplate);
+        .addNodeTemplate(substitutionServiceTemplate,
+            newComputeNodeTemplateId, newComputeNodeTemplate);
     //Add the node template mapping in the context for handling requirement updation
     for (EntityConsolidationData data : computeConsoliadtionDataList) {
       String newComputeTemplateId = getNewComputeNodeTemplateId(serviceTemplate,
-              computeTemplateConsolidationData.getNodeTemplateId());
+          computeTemplateConsolidationData.getNodeTemplateId());
       context.addSubstitutionServiceTemplateUnifiedSubstitutionData(ToscaUtil
-                      .getServiceTemplateFileName(serviceTemplate), data.getNodeTemplateId(),
-              newComputeTemplateId);
+              .getServiceTemplateFileName(serviceTemplate), data.getNodeTemplateId(),
+          newComputeTemplateId);
     }
   }
 
   private List<EntityConsolidationData> getComputeConsolidationDataList(
-          List<UnifiedCompositionData> unifiedCompositionDataList) {
+      List<UnifiedCompositionData> unifiedCompositionDataList) {
     List<EntityConsolidationData> computeConsolidationDataList = new ArrayList<>();
     for (UnifiedCompositionData unifiedCompositionData : unifiedCompositionDataList) {
       computeConsolidationDataList
-              .add(unifiedCompositionData.getComputeTemplateConsolidationData());
+          .add(unifiedCompositionData.getComputeTemplateConsolidationData());
     }
     return computeConsolidationDataList;
   }
@@ -1809,15 +1898,15 @@ public class UnifiedCompositionService {
                                 List<UnifiedCompositionData> unifiedCompositionDataList,
                                 TranslationContext context) {
     List<String> propertiesWithIdenticalVal =
-            consolidationService.getPropertiesWithIdenticalVal(unifiedCompositionEntity, context);
+        consolidationService.getPropertiesWithIdenticalVal(unifiedCompositionEntity, context);
     nodeTemplate.setProperties(new HashedMap());
     handleNodeTemplateProperties(serviceTemplate, nodeTemplate, substitutionServiceTemplate,
-            unifiedCompositionEntity, entityConsolidationDataList, computeTemplateConsolidationData,
-            unifiedCompositionDataList, context);
+        unifiedCompositionEntity, entityConsolidationDataList, computeTemplateConsolidationData,
+        unifiedCompositionDataList, context);
     //Add enrich properties from openecomp node type as input to global and substitution ST
     handleNodeTypeProperties(substitutionServiceTemplate,
-            entityConsolidationDataList, nodeTemplate, unifiedCompositionEntity,
-            computeTemplateConsolidationData, context);
+        entityConsolidationDataList, nodeTemplate, unifiedCompositionEntity,
+        computeTemplateConsolidationData, context);
 
   }
 
@@ -1826,50 +1915,50 @@ public class UnifiedCompositionService {
                                             ServiceTemplate substitutionServiceTemplate,
                                             UnifiedCompositionEntity unifiedCompositionEntity,
                                             List<EntityConsolidationData>
-                                                    entityConsolidationDataList,
+                                                entityConsolidationDataList,
                                             ComputeTemplateConsolidationData
-                                                    computeTemplateConsolidationData,
+                                                computeTemplateConsolidationData,
                                             List<UnifiedCompositionData> unifiedCompositionDataList,
                                             TranslationContext context) {
     List<String> propertiesWithIdenticalVal =
-            consolidationService.getPropertiesWithIdenticalVal(unifiedCompositionEntity, context);
+        consolidationService.getPropertiesWithIdenticalVal(unifiedCompositionEntity, context);
 
     for (EntityConsolidationData entityConsolidationData : entityConsolidationDataList) {
       String nodeTemplateId = entityConsolidationData.getNodeTemplateId();
       Map<String, Object> properties =
-              DataModelUtil.getNodeTemplateProperties(serviceTemplate, nodeTemplateId);
+          DataModelUtil.getNodeTemplateProperties(serviceTemplate, nodeTemplateId);
       if (MapUtils.isEmpty(properties)) {
         continue;
       }
 
       for (Map.Entry<String, Object> propertyEntry : properties.entrySet()) {
         NodeType nodeTypeWithFlatHierarchy =
-                HeatToToscaUtil.getNodeTypeWithFlatHierarchy(nodeTemplate.getType(), serviceTemplate,
-                        context);
+            HeatToToscaUtil.getNodeTypeWithFlatHierarchy(nodeTemplate.getType(), serviceTemplate,
+                context);
         PropertyDefinition propertyDefinition =
-                nodeTypeWithFlatHierarchy.getProperties().get(propertyEntry.getKey());
+            nodeTypeWithFlatHierarchy.getProperties().get(propertyEntry.getKey());
         String propertyType = propertyDefinition.getType();
 
         if (propertiesWithIdenticalVal.contains(propertyEntry.getKey())) {
           String parameterId =
-                  updateIdenticalProperty(nodeTemplateId, propertyEntry.getKey(), nodeTemplate,
-                          unifiedCompositionEntity, unifiedCompositionDataList);
+              updateIdenticalProperty(nodeTemplateId, propertyEntry.getKey(), nodeTemplate,
+                  unifiedCompositionEntity, unifiedCompositionDataList);
 
           addInputParameter(
-                  parameterId, propertyType,
-                  propertyType.equals(PropertyType.LIST.getDisplayName()) ? propertyDefinition
-                          .getEntry_schema() : null,
-                  substitutionServiceTemplate);
+              parameterId, propertyType,
+              propertyType.equals(PropertyType.LIST.getDisplayName()) ? propertyDefinition
+                  .getEntry_schema() : null,
+              substitutionServiceTemplate);
         } else {
           Optional<String> parameterId =
-                  updateProperty(serviceTemplate, nodeTemplateId, nodeTemplate, propertyEntry,
-                          unifiedCompositionEntity, computeTemplateConsolidationData,
-                          unifiedCompositionDataList,
-                          context);
+              updateProperty(serviceTemplate, nodeTemplateId, nodeTemplate, propertyEntry,
+                  unifiedCompositionEntity, computeTemplateConsolidationData,
+                  unifiedCompositionDataList,
+                  context);
           //todo - define list of type which will match the node property type (instead of string)
           addPropertyInputParameter(propertyType, substitutionServiceTemplate, propertyDefinition
-                          .getEntry_schema(),
-                  parameterId, unifiedCompositionEntity, context);
+                  .getEntry_schema(),
+              parameterId, unifiedCompositionEntity, context);
         }
       }
     }
@@ -1880,7 +1969,7 @@ public class UnifiedCompositionService {
                                         NodeTemplate nodeTemplate,
                                         UnifiedCompositionEntity compositionEntity,
                                         ComputeTemplateConsolidationData
-                                                computeTemplateConsolidationData,
+                                            computeTemplateConsolidationData,
                                         TranslationContext context) {
     ToscaAnalyzerService toscaAnalyzerService = new ToscaAnalyzerServiceImpl();
     Optional<NodeType> enrichNodeType;
@@ -1888,8 +1977,8 @@ public class UnifiedCompositionService {
 
     if (compositionEntity.equals(UnifiedCompositionEntity.Port)) {
       enrichNodeType =
-              toscaAnalyzerService.fetchNodeType(ToscaNodeType.NETWORK_PORT,
-                      context.getGlobalServiceTemplates().values());
+          toscaAnalyzerService.fetchNodeType(ToscaNodeType.NETWORK_PORT,
+              context.getGlobalServiceTemplates().values());
       enrichProperties = context.getEnrichPortResourceProperties();
       if (!enrichNodeType.isPresent() || Objects.isNull(enrichProperties)) {
         return;
@@ -1903,9 +1992,9 @@ public class UnifiedCompositionService {
     if (Objects.nonNull(enrichNodeTypeProperties)) {
       for (String enrichPropertyName : enrichProperties) {
         handleEntityConsolidationDataNodeTypeProperties(
-                enrichPropertyName, substitutionServiceTemplate,
-                enrichNodeType.get(), nodeTemplate, compositionEntity, computeTemplateConsolidationData,
-                entityConsolidationDataList, nodeTemplateProperties, context);
+            enrichPropertyName, substitutionServiceTemplate,
+            enrichNodeType.get(), nodeTemplate, compositionEntity, computeTemplateConsolidationData,
+            entityConsolidationDataList, nodeTemplateProperties, context);
       }
     }
   }
@@ -1926,14 +2015,14 @@ public class UnifiedCompositionService {
       String nodeTemplateId = entityConsolidationData.getNodeTemplateId();
 
       String inputParamId =
-              getParameterId(nodeTemplateId, nodeTemplate, enrichPropertyName,
-                      compositionEntity, computeTemplateConsolidationData);
+          getParameterId(nodeTemplateId, nodeTemplate, enrichPropertyName,
+              compositionEntity, computeTemplateConsolidationData);
       Map<String, String> propertyValMap = new HashMap<>();
 
       context
-              .addNewPropertyIdToNodeTemplate(
-                      ToscaUtil.getServiceTemplateFileName(substitutionServiceTemplate),
-                      inputParamId, nodeTemplateProperties.get(enrichPropertyName));
+          .addNewPropertyIdToNodeTemplate(
+              ToscaUtil.getServiceTemplateFileName(substitutionServiceTemplate),
+              inputParamId, nodeTemplateProperties.get(enrichPropertyName));
 
       if (nodeTemplateProperties.containsKey(enrichPropertyName)) {
         handleExistingEnrichedProperty(enrichPropertyName, nodeTemplateProperties, inputParamId);
@@ -1942,11 +2031,11 @@ public class UnifiedCompositionService {
         nodeTemplate.getProperties().put(enrichPropertyName, propertyValMap);
       }
       propertyType =
-              enrichNodeType.getProperties().get(enrichPropertyName).getType();
+          enrichNodeType.getProperties().get(enrichPropertyName).getType();
 
       addPropertyInputParameter(propertyType, substitutionServiceTemplate, enrichNodeType
-                      .getProperties().get(enrichPropertyName).getEntry_schema(),
-              Optional.of(inputParamId), compositionEntity, context);
+              .getProperties().get(enrichPropertyName).getEntry_schema(),
+          Optional.of(inputParamId), compositionEntity, context);
 
     }
   }
@@ -1981,35 +2070,35 @@ public class UnifiedCompositionService {
                                          UnifiedCompositionEntity unifiedCompositionEntity,
                                          TranslationContext context) {
     if (parameterId.isPresent() &&
-            isParameterBelongsToEnrichedPortProperties(parameterId.get(), context)) {
+        isParameterBelongsToEnrichedPortProperties(parameterId.get(), context)) {
       addInputParameter(parameterId.get(),
-              propertyType,
-              propertyType.equals(PropertyType.LIST.getDisplayName()) ? entrySchema : null,
-              substitutionServiceTemplate);
+          propertyType,
+          propertyType.equals(PropertyType.LIST.getDisplayName()) ? entrySchema : null,
+          substitutionServiceTemplate);
     } else if (isPropertySimpleType(propertyType)) {
       parameterId
-              .ifPresent(parameterIdValue -> addInputParameter(parameterIdValue,
-                      PropertyType.LIST.getDisplayName(),
-                      DataModelUtil
-                              .createEntrySchema(propertyType.toLowerCase(), null, null),
-                      substitutionServiceTemplate));
+          .ifPresent(parameterIdValue -> addInputParameter(parameterIdValue,
+              PropertyType.LIST.getDisplayName(),
+              DataModelUtil
+                  .createEntrySchema(propertyType.toLowerCase(), null, null),
+              substitutionServiceTemplate));
 
     } else if (propertyType.equals(PropertyTypeExt.JSON.getDisplayName()) ||
-            (Objects.nonNull(entrySchema) && isPropertySimpleType(entrySchema.getType()))) {
+        (Objects.nonNull(entrySchema) && isPropertySimpleType(entrySchema.getType()))) {
       parameterId
-              .ifPresent(parameterIdValue -> addInputParameter(parameterIdValue,
-                      PropertyType.LIST.getDisplayName(),
-                      DataModelUtil
-                              .createEntrySchema(PropertyTypeExt.JSON.getDisplayName(), null, null),
-                      substitutionServiceTemplate));
+          .ifPresent(parameterIdValue -> addInputParameter(parameterIdValue,
+              PropertyType.LIST.getDisplayName(),
+              DataModelUtil
+                  .createEntrySchema(PropertyTypeExt.JSON.getDisplayName(), null, null),
+              substitutionServiceTemplate));
     } else {
       parameterId
-              .ifPresent(parameterIdValue -> addInputParameter(parameterIdValue,
-                      analyzeParameterType(propertyType),
-                      DataModelUtil
-                              .createEntrySchema(analyzeEntrySchemaType(propertyType, entrySchema),
-                                      null, null),
-                      substitutionServiceTemplate));
+          .ifPresent(parameterIdValue -> addInputParameter(parameterIdValue,
+              analyzeParameterType(propertyType),
+              DataModelUtil
+                  .createEntrySchema(analyzeEntrySchemaType(propertyType, entrySchema),
+                      null, null),
+              substitutionServiceTemplate));
     }
   }
 
@@ -2028,20 +2117,20 @@ public class UnifiedCompositionService {
 
   private boolean isPropertySimpleType(String propertyType) {
     return !Objects.isNull(propertyType) &&
-            (propertyType.equalsIgnoreCase(PropertyType.STRING.getDisplayName())
-                    || propertyType.equalsIgnoreCase(PropertyType.INTEGER.getDisplayName())
-                    || propertyType.equalsIgnoreCase(PropertyType.FLOAT.getDisplayName())
-                    || propertyType.equalsIgnoreCase(PropertyType.BOOLEAN.getDisplayName()));
+        (propertyType.equalsIgnoreCase(PropertyType.STRING.getDisplayName())
+            || propertyType.equalsIgnoreCase(PropertyType.INTEGER.getDisplayName())
+            || propertyType.equalsIgnoreCase(PropertyType.FLOAT.getDisplayName())
+            || propertyType.equalsIgnoreCase(PropertyType.BOOLEAN.getDisplayName()));
   }
 
   private String analyzeParameterType(String propertyType) {
     return propertyType.equalsIgnoreCase(PropertyType.LIST.getDisplayName()) ? PropertyType.LIST
-            .getDisplayName() : propertyType;
+        .getDisplayName() : propertyType;
   }
 
   private String analyzeEntrySchemaType(String propertyType, EntrySchema entrySchema) {
     return propertyType.equalsIgnoreCase(PropertyType.LIST.getDisplayName()) ?
-            entrySchema.getType() : null;
+        entrySchema.getType() : null;
   }
 
   private void handleConsolidationEntitiesRequirementConnectivity(String nodeTemplateId,
@@ -2050,7 +2139,7 @@ public class UnifiedCompositionService {
                                                                   TranslationContext context) {
     Map<String, RequirementAssignment> updatedNodeTemplateRequirements = new HashMap<>();
     List<Map<String, RequirementAssignment>> nodeTemplateRequirements = DataModelUtil
-            .getNodeTemplateRequirementList(nodeTemplate);
+        .getNodeTemplateRequirementList(nodeTemplate);
     if (CollectionUtils.isEmpty(nodeTemplateRequirements)) {
       return;
     }
@@ -2060,8 +2149,8 @@ public class UnifiedCompositionService {
         RequirementAssignment requirementAssignment = entry.getValue();
         String requirementNode = requirementAssignment.getNode();
         String unifiedNodeTemplateId =
-                context.getUnifiedSubstitutionNodeTemplateId(serviceTemplate,
-                        requirementNode);
+            context.getUnifiedSubstitutionNodeTemplateId(serviceTemplate,
+                requirementNode);
         if (unifiedNodeTemplateId != null) {
           //Update the node id in the requirement
           requirementAssignment.setNode(unifiedNodeTemplateId);
@@ -2081,14 +2170,14 @@ public class UnifiedCompositionService {
                                                 String relationshipId,
                                                 TranslationContext context) {
     Map<String, RelationshipTemplate> relationshipTemplates = DataModelUtil
-            .getRelationshipTemplates(serviceTemplate);
+        .getRelationshipTemplates(serviceTemplate);
     if (relationshipTemplates != null) {
       RelationshipTemplate relationshipTemplate = relationshipTemplates.get(relationshipId);
       if (relationshipTemplate != null) {
         String relationshipTemplateType = relationshipTemplate.getType();
         if (relationshipTemplateType.equals(ToscaRelationshipType.CINDER_VOLUME_ATTACHES_TO)) {
           handleCinderVolumeAttachmentRelationshipTemplate(serviceTemplate,
-                  relationshipTemplate, context);
+              relationshipTemplate, context);
         }
       }
     }
@@ -2096,14 +2185,14 @@ public class UnifiedCompositionService {
 
 
   private void handleCinderVolumeAttachmentRelationshipTemplate(ServiceTemplate
-                                                                        substitutionServiceTemplate,
+                                                                    substitutionServiceTemplate,
                                                                 RelationshipTemplate
-                                                                        relationshipTemplate,
+                                                                    relationshipTemplate,
                                                                 TranslationContext context) {
     Map<String, Object> properties = relationshipTemplate.getProperties();
     properties.computeIfPresent(HeatConstants.INSTANCE_UUID_PROPERTY_NAME, (key, value) ->
-            context.getUnifiedAbstractNodeTemplateId(substitutionServiceTemplate,
-                    (String) value));
+        context.getUnifiedAbstractNodeTemplateId(substitutionServiceTemplate,
+            (String) value));
   }
 
   private String updateIdenticalProperty(String nodeTemplateId, String propertyId,
@@ -2117,7 +2206,7 @@ public class UnifiedCompositionService {
     switch (unifiedCompositionEntity) {
       case Compute:
         inputParamId = COMPUTE_IDENTICAL_VALUE_PROPERTY_PREFIX + propertyId
-                + COMPUTE_IDENTICAL_VALUE_PROPERTY_SUFFIX;
+            + COMPUTE_IDENTICAL_VALUE_PROPERTY_SUFFIX;
 
         propertyVal.put(ToscaFunctions.GET_INPUT.getDisplayName(), inputParamId);
         nodeTemplate.getProperties().put(propertyId, propertyVal);
@@ -2127,9 +2216,9 @@ public class UnifiedCompositionService {
       case Port:
         String portType = ConsolidationDataUtil.getPortType(nodeTemplateId);
         ComputeTemplateConsolidationData computeTemplateConsolidationData =
-                getConnectedComputeConsolidationData(unifiedCompositionDataList, nodeTemplateId);
+            getConnectedComputeConsolidationData(unifiedCompositionDataList, nodeTemplateId);
         inputParamId = getInputParamIdForPort(nodeTemplateId, propertyId, portType,
-                computeTemplateConsolidationData);
+            computeTemplateConsolidationData);
 
         propertyVal.put(ToscaFunctions.GET_INPUT.getDisplayName(), inputParamId);
         nodeTemplate.getProperties().put(propertyId, propertyVal);
@@ -2145,15 +2234,15 @@ public class UnifiedCompositionService {
                                         ComputeTemplateConsolidationData computeTemplateConsolidationData) {
     String inputParamId;
     if (Objects.isNull(computeTemplateConsolidationData)
-            || computeTemplateConsolidationData.getPorts().get(portType).size() > 1) {
+        || computeTemplateConsolidationData.getPorts().get(portType).size() > 1) {
       inputParamId =
-              UnifiedCompositionEntity.Port.name().toLowerCase() + "_" + nodeTemplateId + "_" +
-                      propertyId;
+          UnifiedCompositionEntity.Port.name().toLowerCase() + "_" + nodeTemplateId + "_" +
+              propertyId;
 
     } else {
       inputParamId =
-              UnifiedCompositionEntity.Port.name().toLowerCase() + "_" + portType + "_"
-                      + propertyId;
+          UnifiedCompositionEntity.Port.name().toLowerCase() + "_" + portType + "_"
+              + propertyId;
     }
     return inputParamId;
   }
@@ -2164,36 +2253,36 @@ public class UnifiedCompositionService {
                                  ServiceTemplate serviceTemplate) {
 
     ParameterDefinition parameterDefinition = DataModelUtil.createParameterDefinition
-            (parameterType, null, null,
-                    true, null, null,
-                    entrySchema, null);
+        (parameterType, null, null,
+            true, null, null,
+            entrySchema, null);
 
 
     DataModelUtil
-            .addInputParameterToTopologyTemplate(serviceTemplate, parameterId, parameterDefinition);
+        .addInputParameterToTopologyTemplate(serviceTemplate, parameterId, parameterDefinition);
   }
 
   // Return the input parameter Id which is used in the new property value if there is one
   private Optional<String> updateProperty(
-          ServiceTemplate serviceTemplate,
-          String nodeTemplateId, NodeTemplate nodeTemplate,
-          Map.Entry<String, Object> propertyEntry,
-          UnifiedCompositionEntity compositionEntity,
-          ComputeTemplateConsolidationData computeTemplateConsolidationData,
-          List<UnifiedCompositionData> unifiedCompositionDataList,
-          TranslationContext context) {
+      ServiceTemplate serviceTemplate,
+      String nodeTemplateId, NodeTemplate nodeTemplate,
+      Map.Entry<String, Object> propertyEntry,
+      UnifiedCompositionEntity compositionEntity,
+      ComputeTemplateConsolidationData computeTemplateConsolidationData,
+      List<UnifiedCompositionData> unifiedCompositionDataList,
+      TranslationContext context) {
 
     if (handleGetAttrFromConsolidationNodes(serviceTemplate, nodeTemplateId, nodeTemplate,
-            propertyEntry, unifiedCompositionDataList, context)) {
+        propertyEntry, unifiedCompositionDataList, context)) {
       return Optional.empty();
     }
 
 
     String inputParamId =
-            getParameterId(nodeTemplateId, nodeTemplate, propertyEntry.getKey(), compositionEntity,
-                    computeTemplateConsolidationData);
+        getParameterId(nodeTemplateId, nodeTemplate, propertyEntry.getKey(), compositionEntity,
+            computeTemplateConsolidationData);
     Map<String, List<String>> propertyVal = getPropertyValueInputParam(nodeTemplateId,
-            nodeTemplate, inputParamId);
+        nodeTemplate, inputParamId);
     nodeTemplate.getProperties().put(propertyEntry.getKey(), propertyVal);
     return Optional.of(inputParamId);
   }
@@ -2210,17 +2299,17 @@ public class UnifiedCompositionService {
   }
 
   private boolean handleGetAttrFromConsolidationNodes(
-          ServiceTemplate serviceTemplate,
-          String nodeTemplateId, NodeTemplate nodeTemplate,
-          Map.Entry<String, Object> propertyEntry,
-          List<UnifiedCompositionData> unifiedCompositionDataList,
-          TranslationContext context) {
+      ServiceTemplate serviceTemplate,
+      String nodeTemplateId, NodeTemplate nodeTemplate,
+      Map.Entry<String, Object> propertyEntry,
+      List<UnifiedCompositionData> unifiedCompositionDataList,
+      TranslationContext context) {
     Map<String, UnifiedCompositionEntity> consolidationNodeTemplateIdAndType =
-            getAllConsolidationNodeTemplateIdAndType(unifiedCompositionDataList);
+        getAllConsolidationNodeTemplateIdAndType(unifiedCompositionDataList);
 
     Set<String> consolidationNodeTemplateIds = consolidationNodeTemplateIdAndType.keySet();
     Map<String, String> entityIdToType = ConsolidationService.getConsolidationEntityIdToType(
-            serviceTemplate, context.getConsolidationData());
+        serviceTemplate, context.getConsolidationData());
     boolean includeGetAttrFromConsolidationNodes = false;
     boolean includeGetAttrFromOutsideNodes = false;
     boolean isGetAttrFromConsolidationIsFromSameType = false;
@@ -2237,9 +2326,9 @@ public class UnifiedCompositionService {
       }
     }
     if ((includeGetAttrFromConsolidationNodes && includeGetAttrFromOutsideNodes)
-            ||
-            (includeGetAttrFromConsolidationNodes && isIncludeToscaFunc(propertyEntry.getValue(),
-                    ToscaFunctions.GET_INPUT))) {
+        ||
+        (includeGetAttrFromConsolidationNodes && isIncludeToscaFunc(propertyEntry.getValue(),
+            ToscaFunctions.GET_INPUT))) {
       //This case is currently not supported - this property will be ignored
       return true;
     } else if (includeGetAttrFromConsolidationNodes && !isGetAttrFromConsolidationIsFromSameType) {
@@ -2249,7 +2338,7 @@ public class UnifiedCompositionService {
         String targetNodeTemplateId = (String) getAttrFunc.get(0);
         if (consolidationNodeTemplateIds.contains(targetNodeTemplateId)) {
           updatePropertyGetAttrFunc(serviceTemplate, unifiedCompositionDataList, context,
-                  consolidationNodeTemplateIdAndType, targetNodeTemplateId, getAttrFunc);
+              consolidationNodeTemplateIdAndType, targetNodeTemplateId, getAttrFunc);
         }
       }
       nodeTemplate.getProperties().put(propertyEntry.getKey(), clonedPropertyValue);
@@ -2261,10 +2350,10 @@ public class UnifiedCompositionService {
   private boolean isGetAttrFromConsolidationNodesIsFromSameType(String sourceNodeTemplateId,
                                                                 Set<String> nodeTemplateIdsFromConsolidation,
                                                                 Map<String, String>
-                                                                        nodeTemplateIdToType) {
+                                                                    nodeTemplateIdToType) {
     for (String idFromConsolidation : nodeTemplateIdsFromConsolidation) {
       if (isGetAttrNodeTemplateFromSameType(sourceNodeTemplateId, idFromConsolidation,
-              nodeTemplateIdToType)) {
+          nodeTemplateIdToType)) {
         return true;
       }
     }
@@ -2276,26 +2365,26 @@ public class UnifiedCompositionService {
                                                     Map<String, String> nodeTemplateIdToType) {
 
     if (Objects.isNull(nodeTemplateIdToType.get(sourceNodeTemplateId))
-            || Objects.isNull(nodeTemplateIdToType.get(targetNodeTemplateId))) {
+        || Objects.isNull(nodeTemplateIdToType.get(targetNodeTemplateId))) {
       return false;
     }
 
     return nodeTemplateIdToType.get(sourceNodeTemplateId).equals(nodeTemplateIdToType
-            .get(targetNodeTemplateId));
+        .get(targetNodeTemplateId));
   }
 
   private void updatePropertyGetAttrFunc(
-          ServiceTemplate serviceTemplate,
-          List<UnifiedCompositionData> unifiedCompositionDataList,
-          TranslationContext context,
-          Map<String, UnifiedCompositionEntity> consolidationNodeTemplateIdAndType,
-          String targetNodeTemplateId,
-          List<Object> getAttrFunc) {
+      ServiceTemplate serviceTemplate,
+      List<UnifiedCompositionData> unifiedCompositionDataList,
+      TranslationContext context,
+      Map<String, UnifiedCompositionEntity> consolidationNodeTemplateIdAndType,
+      String targetNodeTemplateId,
+      List<Object> getAttrFunc) {
     UnifiedCompositionEntity targetCompositionEntity =
-            consolidationNodeTemplateIdAndType.get(targetNodeTemplateId);
+        consolidationNodeTemplateIdAndType.get(targetNodeTemplateId);
     String targetNewNodeTemplateId =
-            getNewNodeTemplateId(serviceTemplate, unifiedCompositionDataList, targetNodeTemplateId,
-                    targetCompositionEntity);
+        getNewNodeTemplateId(serviceTemplate, unifiedCompositionDataList, targetNodeTemplateId,
+            targetCompositionEntity);
     getAttrFunc.set(0, targetNewNodeTemplateId);
   }
 
@@ -2308,13 +2397,13 @@ public class UnifiedCompositionService {
         return getNewComputeNodeTemplateId(serviceTemplate, nodeTemplateId);
       case Port:
         ComputeTemplateConsolidationData connectedComputeConsolidationData =
-                getConnectedComputeConsolidationData(
-                        unifiedCompositionDataList, nodeTemplateId);
+            getConnectedComputeConsolidationData(
+                unifiedCompositionDataList, nodeTemplateId);
         NodeTemplate connectedComputeNodeTemplate =
-                DataModelUtil.getNodeTemplate(serviceTemplate,
-                        connectedComputeConsolidationData.getNodeTemplateId());
+            DataModelUtil.getNodeTemplate(serviceTemplate,
+                connectedComputeConsolidationData.getNodeTemplateId());
         return getNewPortNodeTemplateId(nodeTemplateId, connectedComputeNodeTemplate.getType(),
-                connectedComputeConsolidationData);
+            connectedComputeConsolidationData);
       default:
         return null;
     }
@@ -2327,13 +2416,13 @@ public class UnifiedCompositionService {
     ConsolidationData consolidationData = context.getConsolidationData();
 
     if (isIdIsOfExpectedType(origNodeTemplateId, UnifiedCompositionEntity.Port,
-            serviceTemplateFileName,
-            context)) {
+        serviceTemplateFileName,
+        context)) {
       return handleIdOfPort(origNodeTemplateId, serviceTemplateFileName, consolidationData);
     } else if (isIdIsOfExpectedType(origNodeTemplateId, UnifiedCompositionEntity.Compute,
-            serviceTemplateFileName, context)) {
+        serviceTemplateFileName, context)) {
       NodeTemplate nodeTemplate =
-              getComputeNodeTemplate(origNodeTemplateId, serviceTemplate, context);
+          getComputeNodeTemplate(origNodeTemplateId, serviceTemplate, context);
       return getComputeTypeSuffix(nodeTemplate.getType());
     }
 
@@ -2341,11 +2430,11 @@ public class UnifiedCompositionService {
   }
 
   private ComputeTemplateConsolidationData getConnectedComputeConsolidationData(
-          List<UnifiedCompositionData> unifiedCompositionDataList,
-          String portNodeTemplateId) {
+      List<UnifiedCompositionData> unifiedCompositionDataList,
+      String portNodeTemplateId) {
     for (UnifiedCompositionData unifiedCompositionData : unifiedCompositionDataList) {
       Collection<List<String>> portsCollection =
-              unifiedCompositionData.getComputeTemplateConsolidationData().getPorts().values();
+          unifiedCompositionData.getComputeTemplateConsolidationData().getPorts().values();
       for (List<String> portIdList : portsCollection) {
         if (portIdList.contains(portNodeTemplateId)) {
           return unifiedCompositionData.getComputeTemplateConsolidationData();
@@ -2371,16 +2460,16 @@ public class UnifiedCompositionService {
     switch (unifiedCompositionEntity) {
       case Compute:
         return UnifiedCompositionEntity.Compute.name().toLowerCase() + "_"
-                + getComputeTypeSuffix(nodeTemplate.getType()) + "_" + propertyId;
+            + getComputeTypeSuffix(nodeTemplate.getType()) + "_" + propertyId;
       case Port:
         String portType = ConsolidationDataUtil.getPortType(nodeTemplateId);
         if (Objects.isNull(computeTemplateConsolidationData)
-                || computeTemplateConsolidationData.getPorts().get(portType).size() > 1) {
+            || computeTemplateConsolidationData.getPorts().get(portType).size() > 1) {
           return UnifiedCompositionEntity.Port.name().toLowerCase() + "_" + nodeTemplateId + "_"
-                  + propertyId;
+              + propertyId;
         }
         return UnifiedCompositionEntity.Port.name().toLowerCase() + "_" + portType + "_"
-                + propertyId;
+            + propertyId;
       default:
         return propertyId;
     }
@@ -2393,10 +2482,10 @@ public class UnifiedCompositionService {
     }
 
     for (List<RequirementAssignmentData> requirementAssignmentDataList : entityConsolidationData
-            .getNodesConnectedOut().values()) {
+        .getNodesConnectedOut().values()) {
       for (RequirementAssignmentData requirementAssignmentData : requirementAssignmentDataList) {
         DataModelUtil.removeRequirementsAssignment(nodeTemplate.getRequirements(),
-                requirementAssignmentData.getRequirementId());
+            requirementAssignmentData.getRequirementId());
       }
       if (nodeTemplate.getRequirements().isEmpty()) {
         nodeTemplate.setRequirements(null);
@@ -2405,17 +2494,17 @@ public class UnifiedCompositionService {
   }
 
   private void removeVolumeConnectivity(
-          ComputeTemplateConsolidationData computeTemplateConsolidationData,
-          NodeTemplate computeNodeTemplate) {
+      ComputeTemplateConsolidationData computeTemplateConsolidationData,
+      NodeTemplate computeNodeTemplate) {
     if (MapUtils.isEmpty(computeTemplateConsolidationData.getVolumes())) {
       return;
     }
     Collection<List<RequirementAssignmentData>> volumeCollection =
-            computeTemplateConsolidationData.getVolumes().values();
+        computeTemplateConsolidationData.getVolumes().values();
     for (List<RequirementAssignmentData> requirementAssignmentDataList : volumeCollection) {
       for (RequirementAssignmentData requirementAssignmentData : requirementAssignmentDataList) {
         DataModelUtil.removeRequirementsAssignment(computeNodeTemplate.getRequirements(),
-                requirementAssignmentData.getRequirementId());
+            requirementAssignmentData.getRequirementId());
       }
     }
     if (computeNodeTemplate.getRequirements().isEmpty()) {
@@ -2425,11 +2514,11 @@ public class UnifiedCompositionService {
 
   private void createIndexInputParameter(ServiceTemplate substitutionServiceTemplate) {
     ParameterDefinition indexParameterDefinition =
-            DataModelUtil.createParameterDefinition(PropertyType.INTEGER.getDisplayName(),
-                    "Index value of this substitution service template runtime instance", null,
-                    false, createIndexValueConstraint(), null, null, 0);
+        DataModelUtil.createParameterDefinition(PropertyType.INTEGER.getDisplayName(),
+            "Index value of this substitution service template runtime instance", null,
+            false, createIndexValueConstraint(), null, null, 0);
     DataModelUtil.addInputParameterToTopologyTemplate(substitutionServiceTemplate,
-            ToscaConstants.INDEX_VALUE_PROPERTY_NAME, indexParameterDefinition);
+        ToscaConstants.INDEX_VALUE_PROPERTY_NAME, indexParameterDefinition);
   }
 
 
@@ -2444,50 +2533,50 @@ public class UnifiedCompositionService {
 
   private Optional<UnifiedComposition> getUnifiedCompositionInstance(UnifiedCompositionMode mode) {
     String unifiedCompositionImplClassName =
-            unifiedCompositionImplMap.get(mode.name()).getImplementationClass();
+        unifiedCompositionImplMap.get(mode.name()).getImplementationClass();
     if (StringUtils.isEmpty(unifiedCompositionImplClassName)) {
       return Optional.empty();
     }
     return Optional
-            .of(CommonMethods.newInstance(unifiedCompositionImplClassName, UnifiedComposition.class));
+        .of(CommonMethods.newInstance(unifiedCompositionImplClassName, UnifiedComposition.class));
   }
 
   private Optional<Map<String, Object>> createAbstractSubstitutionProperties(
-          ServiceTemplate serviceTemplate,
-          ServiceTemplate substitutionServiceTemplate,
-          List<UnifiedCompositionData> unifiedCompositionDataList,
-          TranslationContext context) {
+      ServiceTemplate serviceTemplate,
+      ServiceTemplate substitutionServiceTemplate,
+      List<UnifiedCompositionData> unifiedCompositionDataList,
+      TranslationContext context) {
     Map<String, Object> abstractSubstituteProperties = new LinkedHashMap<>();
     Map<String, ParameterDefinition> substitutionTemplateInputs = DataModelUtil
-            .getInputParameters(substitutionServiceTemplate);
+        .getInputParameters(substitutionServiceTemplate);
     if (substitutionTemplateInputs == null) {
       return Optional.empty();
     }
     //Since all the computes have the same type fetching the type from the first entry
     NodeTemplate firstComputeNodeTemplate = DataModelUtil.getNodeTemplate(serviceTemplate,
-            unifiedCompositionDataList.get(0)
-                    .getComputeTemplateConsolidationData().getNodeTemplateId());
+        unifiedCompositionDataList.get(0)
+            .getComputeTemplateConsolidationData().getNodeTemplateId());
     String computeType = getComputeTypeSuffix(firstComputeNodeTemplate.getType());
     for (Map.Entry<String, ParameterDefinition> input : substitutionTemplateInputs.entrySet()) {
       String substitutionTemplateInputName = input.getKey();
       ParameterDefinition inputParameterDefinition = input.getValue();
       String inputType = inputParameterDefinition.getType();
       UnifiedCompositionEntity inputUnifiedCompositionEntity =
-              getInputCompositionEntity(substitutionTemplateInputName);
+          getInputCompositionEntity(substitutionTemplateInputName);
 
       if (!inputType.equalsIgnoreCase(PropertyType.LIST.getDisplayName())) {
         if (isIdenticalValueProperty(
-                substitutionTemplateInputName, inputUnifiedCompositionEntity, context)) {
+            substitutionTemplateInputName, inputUnifiedCompositionEntity, context)) {
           //Handle identical value properties
           Optional<String> identicalValuePropertyName =
-                  getIdenticalValuePropertyName(substitutionTemplateInputName,
-                          inputUnifiedCompositionEntity, context);
+              getIdenticalValuePropertyName(substitutionTemplateInputName,
+                  inputUnifiedCompositionEntity, context);
 
           if (identicalValuePropertyName.isPresent()) {
             updateIdenticalPropertyValue(identicalValuePropertyName.get(),
-                    substitutionTemplateInputName, computeType, inputUnifiedCompositionEntity,
-                    unifiedCompositionDataList.get(0), serviceTemplate, abstractSubstituteProperties,
-                    context);
+                substitutionTemplateInputName, computeType, inputUnifiedCompositionEntity,
+                unifiedCompositionDataList.get(0), serviceTemplate, abstractSubstituteProperties,
+                context);
           }
         }
         continue;
@@ -2500,9 +2589,9 @@ public class UnifiedCompositionService {
         case Compute:
           for (UnifiedCompositionData compositionData : unifiedCompositionDataList) {
             ComputeTemplateConsolidationData computeTemplateConsolidationData =
-                    compositionData.getComputeTemplateConsolidationData();
+                compositionData.getComputeTemplateConsolidationData();
             propertyValue = getComputePropertyValue(substitutionTemplateInputName,
-                    serviceTemplate, computeTemplateConsolidationData);
+                serviceTemplate, computeTemplateConsolidationData);
             if (!(propertyValue instanceof Optional)) {
               abstractPropertyValue.add(propertyValue);
             }
@@ -2511,18 +2600,18 @@ public class UnifiedCompositionService {
         case Port:
           for (UnifiedCompositionData compositionData : unifiedCompositionDataList) {
             List<PortTemplateConsolidationData> portTemplateConsolidationDataList =
-                    getPortTemplateConsolidationDataList(compositionData);
+                getPortTemplateConsolidationDataList(compositionData);
             //Get the input type for this input whether it is of type
             // port_<port_node_template_id>_<property_name> or port_<port_type>_<property_name>
             PortInputType portInputType = getPortInputType(substitutionTemplateInputName,
-                    compositionData);
+                compositionData);
             for (PortTemplateConsolidationData portTemplateConsolidationData :
-                    portTemplateConsolidationDataList) {
+                portTemplateConsolidationDataList) {
               //Get the port property value
               String portNodeTemplateId = portTemplateConsolidationData.getNodeTemplateId();
               propertyValue = getPortPropertyValue(substitutionTemplateInputName,
-                      computeType, portInputType, serviceTemplate,
-                      portNodeTemplateId);
+                  computeType, portInputType, serviceTemplate,
+                  portNodeTemplateId);
               //If the value object is Optional.empty it implies that the property name was not
               // found in the input name
               if (!(propertyValue instanceof Optional)) {
@@ -2540,7 +2629,7 @@ public class UnifiedCompositionService {
       for (Object val : abstractPropertyValue) {
         if (Objects.nonNull(val)) {
           updateAbstractPropertyValue(substitutionTemplateInputName, inputParameterDefinition,
-                  abstractPropertyValue, abstractSubstituteProperties);
+              abstractPropertyValue, abstractSubstituteProperties);
           break;
         }
       }
@@ -2558,10 +2647,10 @@ public class UnifiedCompositionService {
       Object propertyValue = abstractPropertyValue.get(0);
       String entrySchemaType = parameterDefinition.getEntry_schema().getType();
       if (entrySchemaType.equalsIgnoreCase(PropertyType.STRING.getDisplayName())
-              || entrySchemaType.equalsIgnoreCase(PropertyType.INTEGER.getDisplayName())
-              || entrySchemaType.equalsIgnoreCase(PropertyType.FLOAT.getDisplayName())
-              || entrySchemaType.equalsIgnoreCase(PropertyType.BOOLEAN.getDisplayName())
-              || entrySchemaType.equals(PropertyTypeExt.JSON.getDisplayName())) {
+          || entrySchemaType.equalsIgnoreCase(PropertyType.INTEGER.getDisplayName())
+          || entrySchemaType.equalsIgnoreCase(PropertyType.FLOAT.getDisplayName())
+          || entrySchemaType.equalsIgnoreCase(PropertyType.BOOLEAN.getDisplayName())
+          || entrySchemaType.equals(PropertyTypeExt.JSON.getDisplayName())) {
         abstractSubstituteProperties.put(substitutionTemplateInputName, abstractPropertyValue);
       } else {
         abstractSubstituteProperties.put(substitutionTemplateInputName, propertyValue);
@@ -2578,12 +2667,12 @@ public class UnifiedCompositionService {
                                             Map<String, Object> abstractSubstituteProperties,
                                             TranslationContext context) {
     Optional<Object> identicalPropertyValueByType =
-            getIdenticalPropertyValueByType(identicalValuePropertyName, substitutionTemplateInputName,
-                    entity, unifiedCompositionData, serviceTemplate, context);
+        getIdenticalPropertyValueByType(identicalValuePropertyName, substitutionTemplateInputName,
+            entity, unifiedCompositionData, serviceTemplate, context);
 
     if (identicalPropertyValueByType.isPresent()) {
       abstractSubstituteProperties
-              .put(substitutionTemplateInputName, identicalPropertyValueByType.get());
+          .put(substitutionTemplateInputName, identicalPropertyValueByType.get());
 
     }
 
@@ -2598,33 +2687,33 @@ public class UnifiedCompositionService {
                                                            TranslationContext context) {
 
     ComputeTemplateConsolidationData computeTemplateConsolidationData =
-            unifiedCompositionData.getComputeTemplateConsolidationData();
+        unifiedCompositionData.getComputeTemplateConsolidationData();
 
     Optional<Object> computeIdenticalPropertyValue;
     switch (entity) {
       case Compute:
         computeIdenticalPropertyValue =
-                getIdenticalPropertyValue(identicalValuePropertyName, serviceTemplate,
-                        entity, computeTemplateConsolidationData, context);
+            getIdenticalPropertyValue(identicalValuePropertyName, serviceTemplate,
+                entity, computeTemplateConsolidationData, context);
         return computeIdenticalPropertyValue.isPresent() ? Optional.of(
-                computeIdenticalPropertyValue.get()) : Optional.empty();
+            computeIdenticalPropertyValue.get()) : Optional.empty();
 
       case Other:
         computeIdenticalPropertyValue =
-                getIdenticalPropertyValue(identicalValuePropertyName, serviceTemplate,
-                        entity, computeTemplateConsolidationData, context);
+            getIdenticalPropertyValue(identicalValuePropertyName, serviceTemplate,
+                entity, computeTemplateConsolidationData, context);
         return computeIdenticalPropertyValue.isPresent() ? Optional.of(
-                computeIdenticalPropertyValue.get()) : Optional.empty();
+            computeIdenticalPropertyValue.get()) : Optional.empty();
 
       case Port:
         List<PortTemplateConsolidationData> portTemplateConsolidationDataList =
-                unifiedCompositionData.getPortTemplateConsolidationDataList();
+            unifiedCompositionData.getPortTemplateConsolidationDataList();
         for (PortTemplateConsolidationData portTemplateConsolidationData : portTemplateConsolidationDataList) {
           String portType =
-                  ConsolidationDataUtil.getPortType(portTemplateConsolidationData.getNodeTemplateId());
+              ConsolidationDataUtil.getPortType(portTemplateConsolidationData.getNodeTemplateId());
           if (substitutionTemplateInputName.contains(portType)) {
             return getIdenticalPropertyValue(identicalValuePropertyName, serviceTemplate,
-                    entity, portTemplateConsolidationData, context);
+                entity, portTemplateConsolidationData, context);
           }
         }
     }
@@ -2638,13 +2727,13 @@ public class UnifiedCompositionService {
                                          UnifiedCompositionData unifiedCompositionData) {
     String portInputPrefix = UnifiedCompositionEntity.Port.name().toLowerCase() + "_";
     ComputeTemplateConsolidationData computeTemplateConsolidationData = unifiedCompositionData
-            .getComputeTemplateConsolidationData();
+        .getComputeTemplateConsolidationData();
     List<PortTemplateConsolidationData> portTemplateConsolidationDataList =
-            getPortTemplateConsolidationDataList(unifiedCompositionData);
+        getPortTemplateConsolidationDataList(unifiedCompositionData);
     //Scan the available port node template ids to check if the input is of the form
     // "port_<port_node_template_id>_<property_name>"
     for (PortTemplateConsolidationData portTemplateConsolidationData :
-            portTemplateConsolidationDataList) {
+        portTemplateConsolidationDataList) {
       String portNodeTemplateId = portTemplateConsolidationData.getNodeTemplateId();
       String portNodeTemplateIdPrefix = portInputPrefix + portNodeTemplateId;
       if (inputName.startsWith(portNodeTemplateIdPrefix)) {
@@ -2675,17 +2764,17 @@ public class UnifiedCompositionService {
                                                      TranslationContext context) {
     String nodeTemplateIdToRemove = entity.getNodeTemplateId();
     Map<String, NodeTemplate> nodeTemplates =
-            serviceTemplate.getTopology_template().getNode_templates();
+        serviceTemplate.getTopology_template().getNode_templates();
     NodeTemplate nodeTemplateToRemove =
-            nodeTemplates.get(nodeTemplateIdToRemove);
+        nodeTemplates.get(nodeTemplateIdToRemove);
     nodeTemplates.remove(nodeTemplateIdToRemove);
 
     context.addCleanedNodeTemplate(ToscaUtil.getServiceTemplateFileName(serviceTemplate),
-            nodeTemplateIdToRemove,
-            entity.getClass() == ComputeTemplateConsolidationData.class
-                    ? UnifiedCompositionEntity.Compute
-                    : UnifiedCompositionEntity.Port,
-            nodeTemplateToRemove);
+        nodeTemplateIdToRemove,
+        entity.getClass() == ComputeTemplateConsolidationData.class
+            ? UnifiedCompositionEntity.Compute
+            : UnifiedCompositionEntity.Port,
+        nodeTemplateToRemove);
 
   }
 
@@ -2693,13 +2782,13 @@ public class UnifiedCompositionService {
                                      ServiceTemplate serviceTemplate,
                                      TranslationContext context) {
     NodeTemplate cleanedNodeTemplate =
-            context
-                    .getCleanedNodeTemplate(ToscaUtil.getServiceTemplateFileName(serviceTemplate),
-                            cleanedNodeTemplateId);
+        context
+            .getCleanedNodeTemplate(ToscaUtil.getServiceTemplateFileName(serviceTemplate),
+                cleanedNodeTemplateId);
     String typeToRemove = cleanedNodeTemplate.getType();
 
     if (Objects.nonNull(typeToRemove)
-            && serviceTemplate.getNode_types().containsKey(typeToRemove)) {
+        && serviceTemplate.getNode_types().containsKey(typeToRemove)) {
       serviceTemplate.getNode_types().remove(typeToRemove);
     }
   }
@@ -2708,25 +2797,25 @@ public class UnifiedCompositionService {
                                     EntityConsolidationData entity,
                                     TranslationContext context) {
     Map<String, GroupDefinition> groups = serviceTemplate.getTopology_template()
-            .getGroups() == null ? new HashMap<>()
-            : serviceTemplate.getTopology_template().getGroups();
+        .getGroups() == null ? new HashMap<>()
+        : serviceTemplate.getTopology_template().getGroups();
     String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
     String nodeRelatedAbstractNodeId =
-            context.getUnifiedAbstractNodeTemplateId(serviceTemplate, entity.getNodeTemplateId());
+        context.getUnifiedAbstractNodeTemplateId(serviceTemplate, entity.getNodeTemplateId());
 
     for (Map.Entry<String, GroupDefinition> groupEntry : groups.entrySet()) {
       GroupDefinition groupDefinition = groupEntry.getValue();
       if (isHeatStackGroup(groupDefinition.getType())) {
         updateGroupMembersWithNewUnifiedNodeTemplateId(entity, nodeRelatedAbstractNodeId,
-                groupEntry);
+            groupEntry);
       }
     }
   }
 
   private void updateGroupMembersWithNewUnifiedNodeTemplateId(
-          EntityConsolidationData entity,
-          String newNodetemplateId,
-          Map.Entry<String, GroupDefinition> groupEntry) {
+      EntityConsolidationData entity,
+      String newNodetemplateId,
+      Map.Entry<String, GroupDefinition> groupEntry) {
     List<String> members = groupEntry.getValue().getMembers();
     if (members.contains(entity.getNodeTemplateId())) {
       members.remove(entity.getNodeTemplateId());
@@ -2744,7 +2833,7 @@ public class UnifiedCompositionService {
     }
 
     SubstitutionMapping substitution_mappings =
-            substitutionServiceTemplate.getTopology_template().getSubstitution_mappings();
+        substitutionServiceTemplate.getTopology_template().getSubstitution_mappings();
 
     if(Objects.isNull(substitution_mappings)){
       return;
@@ -2759,34 +2848,34 @@ public class UnifiedCompositionService {
   private void updateSubstitutionMapping(ServiceTemplate serviceTemplate,
                                          TranslationContext context) {
     SubstitutionMapping substitutionMappings =
-            DataModelUtil.getSubstitutionMappings(serviceTemplate);
+        DataModelUtil.getSubstitutionMappings(serviceTemplate);
     if (Objects.nonNull(substitutionMappings)) {
 
       if (Objects.nonNull(substitutionMappings.getRequirements())) {
         updateSubstitutionMappingRequirements(substitutionMappings.getRequirements(),
-                serviceTemplate, context);
+            serviceTemplate, context);
       }
 
       if (Objects.nonNull(substitutionMappings.getCapabilities())) {
         updateSubstitutionMappingCapabilities(substitutionMappings.getCapabilities(),
-                serviceTemplate, context);
+            serviceTemplate, context);
       }
     }
   }
 
   private void updateSubstitutionMappingRequirements(Map<String, List<String>>
-                                                             substitutionMappingRequirements,
+                                                         substitutionMappingRequirements,
                                                      ServiceTemplate serviceTemplate,
                                                      TranslationContext context) {
     for (Map.Entry<String, List<String>> entry : substitutionMappingRequirements.entrySet()) {
       List<String> requirement = entry.getValue();
       String oldNodeTemplateId = requirement.get(0);
       String newAbstractNodeTemplateId = context.getUnifiedAbstractNodeTemplateId(serviceTemplate,
-              requirement.get(0));
+          requirement.get(0));
       String newSubstitutionNodeTemplateId = context.getUnifiedSubstitutionNodeTemplateId(
-              serviceTemplate, oldNodeTemplateId);
+          serviceTemplate, oldNodeTemplateId);
       if (Objects.nonNull(newAbstractNodeTemplateId)
-              && Objects.nonNull(newSubstitutionNodeTemplateId)) {
+          && Objects.nonNull(newSubstitutionNodeTemplateId)) {
         requirement.set(0, newAbstractNodeTemplateId);
         String newRequirementValue = requirement.get(1) + "_" + newSubstitutionNodeTemplateId;
         requirement.set(1, newRequirementValue);
@@ -2795,18 +2884,18 @@ public class UnifiedCompositionService {
   }
 
   private void updateSubstitutionMappingCapabilities(Map<String, List<String>>
-                                                             substitutionMappingCapabilities,
+                                                         substitutionMappingCapabilities,
                                                      ServiceTemplate serviceTemplate,
                                                      TranslationContext context) {
     for (Map.Entry<String, List<String>> entry : substitutionMappingCapabilities.entrySet()) {
       List<String> capability = entry.getValue();
       String oldNodeTemplateId = capability.get(0);
       String newAbstractNodeTemplateId = context.getUnifiedAbstractNodeTemplateId(serviceTemplate,
-              capability.get(0));
+          capability.get(0));
       String newSubstitutionNodeTemplateId = context.getUnifiedSubstitutionNodeTemplateId(
-              serviceTemplate, oldNodeTemplateId);
+          serviceTemplate, oldNodeTemplateId);
       if (Objects.nonNull(newAbstractNodeTemplateId)
-              && Objects.nonNull(newSubstitutionNodeTemplateId)) {
+          && Objects.nonNull(newSubstitutionNodeTemplateId)) {
         capability.set(0, newAbstractNodeTemplateId);
         String newRequirementValue = capability.get(1) + "_" + newSubstitutionNodeTemplateId;
         capability.set(1, newRequirementValue);
@@ -2818,16 +2907,16 @@ public class UnifiedCompositionService {
                                                      EntityConsolidationData entity,
                                                      TranslationContext context) {
     Map<String, GroupDefinition> groups = serviceTemplate.getTopology_template()
-            .getGroups() == null ? new HashMap<>() : serviceTemplate.getTopology_template().getGroups();
+        .getGroups() == null ? new HashMap<>() : serviceTemplate.getTopology_template().getGroups();
     String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
     Optional<String> nestedNodeTemplateId =
-            context.getUnifiedNestedNodeTemplateId(serviceTemplateFileName, entity.getNodeTemplateId());
+        context.getUnifiedNestedNodeTemplateId(serviceTemplateFileName, entity.getNodeTemplateId());
     if (nestedNodeTemplateId.isPresent()) {
       for (Map.Entry<String, GroupDefinition> groupEntry : groups.entrySet()) {
         GroupDefinition groupDefinition = groupEntry.getValue();
         if (isHeatStackGroup(groupDefinition.getType())) {
           updateGroupMembersWithNewUnifiedNodeTemplateId(entity, nestedNodeTemplateId.get(),
-                  groupEntry);
+              groupEntry);
         }
       }
     }
@@ -2838,7 +2927,7 @@ public class UnifiedCompositionService {
                                                              ServiceTemplate nestedServiceTemplate,
                                                              TranslationContext context) {
     NodeTemplate nestedNodeTemplate = DataModelUtil.getNodeTemplate(mainServiceTemplate,
-            nestedNodeTemplateId);
+        nestedNodeTemplateId);
     if (Objects.isNull(nestedNodeTemplate)) {
       return;
     }
@@ -2846,82 +2935,108 @@ public class UnifiedCompositionService {
     updateNestedNodeTemplateProperties(nestedServiceTemplate, nestedNodeTemplate, context);
 
     Optional<String> unifiedNestedNodeTypeId = context
-            .getUnifiedNestedNodeTypeId(
-                    ToscaUtil.getServiceTemplateFileName(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME),
-                    nestedNodeTemplate.getType());
+        .getUnifiedNestedNodeTypeId(
+            ToscaUtil.getServiceTemplateFileName(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME),
+            nestedNodeTemplate.getType());
     unifiedNestedNodeTypeId
-            .ifPresent(unifiedNestedNodeTypeIdVal -> updateNestedNodeTemplate(
-                    unifiedNestedNodeTypeIdVal, nestedNodeTemplateId, nestedNodeTemplate,
-                    mainServiceTemplate, context));
+        .ifPresent(unifiedNestedNodeTypeIdVal -> updateNestedNodeTemplate(
+            unifiedNestedNodeTypeIdVal, nestedNodeTemplateId, nestedNodeTemplate,
+            mainServiceTemplate, context));
+
+    //updateNestedNodeTemplateRequirement(nestedNodeTemplateId, mainServiceTemplate,
+    //nestedServiceTemplate, context);
 
-    updateNodeTemplateRequirements(nestedNodeTemplateId, mainServiceTemplate,
-            nestedServiceTemplate, context);
+    //updateNodeTemplateRequirements(nestedNodeTemplateId, mainServiceTemplate,
+    //nestedServiceTemplate, context);
 
     //updateNodeDependencyRequirement(mainServiceTemplate, context, nestedNodeTemplate);
   }
 
-  public void updateNodeTemplateRequirements(String nestedNodeTemplateId,
-                                             ServiceTemplate mainServiceTemplate,
-                                             ServiceTemplate nestedServiceTemplate,
-                                             TranslationContext context){
-    String computeNodeType = nestedServiceTemplate.getNode_types().keySet().iterator().next();
-    NodeTemplate nestedNtFromMain =
-            mainServiceTemplate.getTopology_template().getNode_templates().get(nestedNodeTemplateId);
-    ServiceTemplate globalSubstitutionServiceTemplate =
-            context.getGlobalSubstitutionServiceTemplate();
+  private void updateNestedNodeTemplateRequirement(String nestedNodeTemplateId,
+                                                   ServiceTemplate mainServiceTemplate,
+                                                   ServiceTemplate nestedServiceTemplate,
+                                                   TranslationContext context){
+    NestedTemplateConsolidationData nestedTemplateConsolidationData =
+        ConsolidationDataUtil
+            .getNestedTemplateConsolidationData(context, mainServiceTemplate, null, nestedNodeTemplateId);
 
-    if(Objects.isNull(computeNodeType)){
-      return;
-    }
+    FileComputeConsolidationData fileComputeConsolidationData =
+        context.getConsolidationData().getComputeConsolidationData().getFileComputeConsolidationData
+            (ToscaUtil.getServiceTemplateFileName(nestedServiceTemplate));
 
-    NodeType nestedNodeType =
-            globalSubstitutionServiceTemplate.getNode_types().get(computeNodeType);
 
-    if(Objects.isNull(nestedNodeType)){
+    TypeComputeConsolidationData compute =
+        fileComputeConsolidationData.getAllTypeComputeConsolidationData().iterator().next();
+
+    if(Objects.isNull(nestedTemplateConsolidationData)){
       return;
     }
 
-    List<Map<String, RequirementDefinition>> requirements = nestedNodeType.getRequirements();
-
-    if(CollectionUtils.isEmpty(nestedNtFromMain.getRequirements())){
-      nestedNtFromMain.setRequirements(new ArrayList<>());
-    }
+    Map<String, List<RequirementAssignmentData>> nodesConnectedOut =
+        nestedTemplateConsolidationData.getNodesConnectedOut();
 
-    if(CollectionUtils.isEmpty(requirements)) {
+    if(MapUtils.isEmpty(nodesConnectedOut)){
       return;
     }
 
-    updateNodeTemplateRequirements(nestedNtFromMain, requirements);
+    updateRequirements(nestedNodeTemplateId, mainServiceTemplate, nestedServiceTemplate, compute,
+        nodesConnectedOut);
   }
 
-  private void updateNodeTemplateRequirements(NodeTemplate nestedNtFromMain,
-                                              List<Map<String, RequirementDefinition>> requirements) {
-    for(Map<String, RequirementDefinition> requirementDefinitionMap : requirements){
-      Map<String, RequirementAssignment> currReqAssignmentMap = new HashMap<>();
-      for(Map.Entry<String, RequirementDefinition> requirementDefinitionEntry :
-              requirementDefinitionMap.entrySet()){
-        RequirementAssignment requirementAssignment =
-                getRequirementAssignmentFromDefinition(requirementDefinitionEntry);
-        currReqAssignmentMap.put(requirementDefinitionEntry.getKey(), requirementAssignment);
-      }
+  private void updateRequirements(String nestedNodeTemplateId, ServiceTemplate mainServiceTemplate,
+                                  ServiceTemplate nestedServiceTemplate,
+                                  TypeComputeConsolidationData compute,
+                                  Map<String, List<RequirementAssignmentData>> nodesConnectedOut) {
+    NodeTemplate nodeTemplate =
+        DataModelUtil.getNodeTemplate(mainServiceTemplate, nestedNodeTemplateId);
 
-      if(!nestedNtFromMain.getRequirements().contains(currReqAssignmentMap)) {
-        nestedNtFromMain.getRequirements().add(new HashMap(currReqAssignmentMap));
+    for(List<RequirementAssignmentData> requirementAssignmentDataList : nodesConnectedOut.values()){
+      for(RequirementAssignmentData data : requirementAssignmentDataList){
+        if(!data.getRequirementId().equals("dependency")){
+          DataModelUtil.addRequirementAssignment(nodeTemplate, data.getRequirementId(),
+              cloneRequirementAssignment(data.getRequirementAssignment()));
+          updateRequirementInSubMapping(nestedServiceTemplate, compute, data);
+
+        }
       }
     }
 
+    removeUneccessaryRequirements(nodeTemplate);
+  }
+
+  private void updateRequirementInSubMapping(ServiceTemplate nestedServiceTemplate,
+                                             TypeComputeConsolidationData compute,
+                                             RequirementAssignmentData data) {
+    List<String> subMappingRequirement =
+        Arrays.asList(compute.getAllComputeNodeTemplateIds().iterator().next(), "dependency");
+    DataModelUtil.addSubstitutionMappingReq(nestedServiceTemplate, data.getRequirementId(),
+        subMappingRequirement);
+  }
+
+
+  private RequirementAssignment cloneRequirementAssignment(RequirementAssignment reqToClone){
+    RequirementAssignment requirementAssignment = new RequirementAssignment();
+
+    requirementAssignment.setRelationship(reqToClone.getRelationship());
+    requirementAssignment.setNode(reqToClone.getNode());
+    requirementAssignment.setCapability(reqToClone.getCapability());
+
+    return requirementAssignment;
+  }
+
+  private void removeUneccessaryRequirements(NodeTemplate nodeTemplate) {
     List<Map<String, RequirementAssignment>> reqsToRemove = new ArrayList<>();
-    for(Map<String, RequirementAssignment> requirementDefinitionMap : nestedNtFromMain.getRequirements()) {
+    for(Map<String, RequirementAssignment> requirementDefinitionMap : nodeTemplate.getRequirements()) {
       if (requirementDefinitionMap.containsKey("dependency")) {
         reqsToRemove.add(requirementDefinitionMap);
       }
     }
 
-    nestedNtFromMain.getRequirements().removeAll(reqsToRemove);
+    nodeTemplate.getRequirements().removeAll(reqsToRemove);
   }
 
   private RequirementAssignment getRequirementAssignmentFromDefinition(
-          Map.Entry<String, RequirementDefinition> requirementDefinitionEntry) {
+      Map.Entry<String, RequirementDefinition> requirementDefinitionEntry) {
 
     RequirementAssignment requirementAssignment = new RequirementAssignment();
     if(requirementDefinitionEntry.getValue() instanceof RequirementDefinition) {
@@ -2938,41 +3053,13 @@ public class UnifiedCompositionService {
     return requirementAssignment;
   }
 
-  private void updateNodeDependencyRequirement(ServiceTemplate mainServiceTemplate,
-                                               TranslationContext context,
-                                               NodeTemplate nestedNodeTemplate) {
-    List<Map<String, RequirementAssignment>> requirements = nestedNodeTemplate.getRequirements();
-    for(int i = 0; i < requirements.size(); i++){
-      Map<String, RequirementAssignment> requirementAssignmentMap = requirements.get(i);
-      Map<String, RequirementAssignment> updatedMap = new HashMap<>();
-      for(Map.Entry<String, RequirementAssignment> requirementAssignmentEntry :
-              requirementAssignmentMap.entrySet()){
-        if(requirementAssignmentEntry.getKey().equals("dependency")){
-          Optional<String> newReqAssignmentDependencyId =
-                  context.getNewReqAssignmentDependencyId(ToscaUtil.getServiceTemplateFileName
-                          (mainServiceTemplate), requirementAssignmentEntry.getValue());
-
-          if(newReqAssignmentDependencyId.isPresent()){
-            updatedMap.put(newReqAssignmentDependencyId.get(), requirementAssignmentEntry
-                    .getValue());
-          }
-        }else{
-          updatedMap.put(requirementAssignmentEntry.getKey(), requirementAssignmentEntry
-                  .getValue());
-        }
-      }
-
-      requirements.add(i, updatedMap);
-    }
-  }
-
   private void updateNestedNodeTemplateProperties(ServiceTemplate nestedServiceTemplate,
                                                   NodeTemplate nestedNodeTemplate,
                                                   TranslationContext context) {
 
     Map<String, Object> newPropertyInputParamIds =
-            context.getAllNewPropertyInputParamIdsPerNodeTenplateId(ToscaUtil
-                    .getServiceTemplateFileName(nestedServiceTemplate));
+        context.getAllNewPropertyInputParamIdsPerNodeTenplateId(ToscaUtil
+            .getServiceTemplateFileName(nestedServiceTemplate));
 
     for (Map.Entry<String, Object> entry : newPropertyInputParamIds.entrySet()) {
       if (Objects.nonNull(entry.getValue())) {
@@ -2982,24 +3069,24 @@ public class UnifiedCompositionService {
     }
 
     String subNodeType =
-            nestedServiceTemplate.getTopology_template().getSubstitution_mappings().getNode_type();
+        nestedServiceTemplate.getTopology_template().getSubstitution_mappings().getNode_type();
     nestedNodeTemplate.setType(subNodeType);
 
   }
 
   private void handleSubstitutionMappingInNestedServiceTemplate(
-          String newNestedNodeType,
-          ServiceTemplate nestedServiceTemplate,
-          TranslationContext context) {
+      String newNestedNodeType,
+      ServiceTemplate nestedServiceTemplate,
+      TranslationContext context) {
     if (Objects.isNull(newNestedNodeType)) {
       return;
     }
 
     Set<String> relatedNestedNodeTypeIds =
-            context.getAllRelatedNestedNodeTypeIds();
+        context.getAllRelatedNestedNodeTypeIds();
 
     SubstitutionMapping substitutionMappings =
-            nestedServiceTemplate.getTopology_template().getSubstitution_mappings();
+        nestedServiceTemplate.getTopology_template().getSubstitution_mappings();
     if(!relatedNestedNodeTypeIds.contains(substitutionMappings.getNode_type())) {
       substitutionMappings.setNode_type(newNestedNodeType);
     }
@@ -3012,43 +3099,43 @@ public class UnifiedCompositionService {
                                         TranslationContext context) {
     String mainSTName = ToscaUtil.getServiceTemplateFileName(mainServiceTemplate);
     String globalSTName =
-            ToscaUtil.getServiceTemplateFileName(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME);
+        ToscaUtil.getServiceTemplateFileName(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME);
     int index =
-            context.getHandledNestedComputeNodeTemplateIndex(globalSTName, newNestedNodeTypeId);
+        context.getHandledNestedComputeNodeTemplateIndex(globalSTName, newNestedNodeTypeId);
     String newNodeTemplateId =
-            Constants.ABSTRACT_NODE_TEMPLATE_ID_PREFIX + getComputeTypeSuffix(newNestedNodeTypeId)
-                    + "_" + index;
+        Constants.ABSTRACT_NODE_TEMPLATE_ID_PREFIX + getComputeTypeSuffix(newNestedNodeTypeId)
+            + "_" + index;
 
     nestedNodeTemplate.setType(newNestedNodeTypeId);
     mainServiceTemplate.getTopology_template().getNode_templates().remove(nestedNodeTemplateId);
     mainServiceTemplate.getTopology_template().getNode_templates()
-            .put(newNodeTemplateId, nestedNodeTemplate);
+        .put(newNodeTemplateId, nestedNodeTemplate);
 
     context.addUnifiedNestedNodeTemplateId(mainSTName, nestedNodeTemplateId, newNodeTemplateId);
   }
 
   private void handleNestedNodeTypesInGlobalSubstituteServiceTemplate(
-          String origNestedNodeTypeId,
-          String newNestedNodeTypeId,
-          ServiceTemplate globalSubstitutionServiceTemplate,
-          TranslationContext context) {
+      String origNestedNodeTypeId,
+      String newNestedNodeTypeId,
+      ServiceTemplate globalSubstitutionServiceTemplate,
+      TranslationContext context) {
     Set<String> relatedNestedNodeTypeIds =
-            context.getAllRelatedNestedNodeTypeIds();
+        context.getAllRelatedNestedNodeTypeIds();
 
     Map<String, NodeType> nodeTypes = globalSubstitutionServiceTemplate.getNode_types();
     if (!relatedNestedNodeTypeIds.contains(origNestedNodeTypeId)) {
       NodeType nested = DataModelUtil.getNodeType(globalSubstitutionServiceTemplate,
-              origNestedNodeTypeId);
+          origNestedNodeTypeId);
       setNewValuesForNestedNodeType(origNestedNodeTypeId, newNestedNodeTypeId, nested, nodeTypes);
     } else {
       NodeType nested =
-              (NodeType) DataModelUtil.getClonedObject(
-                      DataModelUtil.getNodeType(globalSubstitutionServiceTemplate, origNestedNodeTypeId));
+          (NodeType) DataModelUtil.getClonedObject(
+              DataModelUtil.getNodeType(globalSubstitutionServiceTemplate, origNestedNodeTypeId));
       nested.setDerived_from(ToscaNodeType.VFC_ABSTRACT_SUBSTITUTE);
       nodeTypes.put(newNestedNodeTypeId, nested);
     }
     context.addUnifiedNestedNodeTypeId(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME,
-            origNestedNodeTypeId, newNestedNodeTypeId);
+        origNestedNodeTypeId, newNestedNodeTypeId);
   }
 
   private void setNewValuesForNestedNodeType(String origNestedNodeType,
@@ -3066,22 +3153,22 @@ public class UnifiedCompositionService {
                                                   ServiceTemplate nestedServiceTemplate,
                                                   TranslationContext context) {
     FileComputeConsolidationData fileComputeConsolidationData =
-            context.getConsolidationData().getComputeConsolidationData()
-                    .getFileComputeConsolidationData(
-                            ToscaUtil.getServiceTemplateFileName(nestedServiceTemplate));
+        context.getConsolidationData().getComputeConsolidationData()
+            .getFileComputeConsolidationData(
+                ToscaUtil.getServiceTemplateFileName(nestedServiceTemplate));
 
     if (Objects.nonNull(fileComputeConsolidationData)) {
       String nestedNodeTypePrefix = ToscaNodeType.ABSTRACT_NODE_TYPE_PREFIX + "heat.";
       return Optional
-              .of(nestedNodeTypePrefix + getComputeTypeInNestedFile(fileComputeConsolidationData));
+          .of(nestedNodeTypePrefix + getComputeTypeInNestedFile(fileComputeConsolidationData));
     }
     return Optional.empty();
   }
 
   private String getComputeTypeInNestedFile(
-          FileComputeConsolidationData fileComputeConsolidationData) {
+      FileComputeConsolidationData fileComputeConsolidationData) {
     List<TypeComputeConsolidationData> typeComputeConsolidationDatas =
-            new ArrayList<>(fileComputeConsolidationData.getAllTypeComputeConsolidationData());
+        new ArrayList<>(fileComputeConsolidationData.getAllTypeComputeConsolidationData());
     if (typeComputeConsolidationDatas.size() == 0) {
       return null;
     } else {
@@ -3095,20 +3182,20 @@ public class UnifiedCompositionService {
                                                    String serviceTemplateFileName,
                                                    NodeTemplate abstractNodeTemplate) {
     Map<String, Object> properties =
-            abstractNodeTemplate == null || abstractNodeTemplate.getProperties() == null
-                    ? new HashMap<>()
-                    : abstractNodeTemplate.getProperties();
+        abstractNodeTemplate == null || abstractNodeTemplate.getProperties() == null
+            ? new HashMap<>()
+            : abstractNodeTemplate.getProperties();
     for (Object propertyValue : properties.values()) {
       List<List<Object>> getAttrList = extractGetAttrFunction(propertyValue);
       for (List<Object> getAttrFuncValue : getAttrList) {
         String origNodeTemplateId = (String) getAttrFuncValue.get(0);
         Optional<String> nestedNodeTemplateId = context.getUnifiedNestedNodeTemplateId(ToscaUtil
-                .getServiceTemplateFileName(serviceTemplate), origNodeTemplateId);
+            .getServiceTemplateFileName(serviceTemplate), origNodeTemplateId);
         if (nestedNodeTemplateId.isPresent()) {
           getAttrFuncValue.set(0, nestedNodeTemplateId.get());
         } else {
           replaceGetAttrNodeIdAndAttrName(serviceTemplate, context, serviceTemplateFileName,
-                  getAttrFuncValue);
+              getAttrFuncValue);
         }
       }
     }
@@ -3122,17 +3209,17 @@ public class UnifiedCompositionService {
     String attributeName = (String) getAttrFuncValue.get(1);
 
     String unifiedAbstractNodeTemplateId =
-            context.getUnifiedAbstractNodeTemplateId(serviceTemplate, origNodeTemplateId);
+        context.getUnifiedAbstractNodeTemplateId(serviceTemplate, origNodeTemplateId);
 
     if (Objects.isNull(unifiedAbstractNodeTemplateId)) {
       return;
     }
 
     String newNodeTemplateId =
-            getNewNodeTemplateId(origNodeTemplateId, serviceTemplateFileName, serviceTemplate, context);
+        getNewNodeTemplateId(origNodeTemplateId, serviceTemplateFileName, serviceTemplate, context);
 
     String newSubstitutionOutputParameterId =
-            getNewSubstitutionOutputParameterId(newNodeTemplateId, attributeName);
+        getNewSubstitutionOutputParameterId(newNodeTemplateId, attributeName);
 
     getAttrFuncValue.set(0, unifiedAbstractNodeTemplateId);
     getAttrFuncValue.set(1, newSubstitutionOutputParameterId);
@@ -3142,11 +3229,11 @@ public class UnifiedCompositionService {
                                               ServiceTemplate serviceTemplate,
                                               TranslationContext context) {
     NodeTemplate computeNodeTemplate =
-            DataModelUtil.getNodeTemplate(serviceTemplate, origNodeTemplateId);
+        DataModelUtil.getNodeTemplate(serviceTemplate, origNodeTemplateId);
     if (computeNodeTemplate == null) {
       computeNodeTemplate =
-              context.getCleanedNodeTemplate(ToscaUtil.getServiceTemplateFileName(serviceTemplate),
-                      origNodeTemplateId);
+          context.getCleanedNodeTemplate(ToscaUtil.getServiceTemplateFileName(serviceTemplate),
+              origNodeTemplateId);
     }
     return computeNodeTemplate;
   }
@@ -3154,14 +3241,14 @@ public class UnifiedCompositionService {
   private String handleIdOfPort(String origNodeTemplateId, String serviceTemplateFileName,
                                 ConsolidationData consolidationData) {
     Optional<Pair<String, ComputeTemplateConsolidationData>>
-            computeTypeAndComputeTemplateByPortId =
-            getComputeTypeAndComputeTemplateByPortId(origNodeTemplateId, serviceTemplateFileName,
-                    consolidationData);
+        computeTypeAndComputeTemplateByPortId =
+        getComputeTypeAndComputeTemplateByPortId(origNodeTemplateId, serviceTemplateFileName,
+            consolidationData);
     if (computeTypeAndComputeTemplateByPortId.isPresent()) {
       Pair<String, ComputeTemplateConsolidationData> computeIdToComputeData =
-              computeTypeAndComputeTemplateByPortId.get();
+          computeTypeAndComputeTemplateByPortId.get();
       return getNewPortNodeTemplateId(origNodeTemplateId, computeIdToComputeData.getKey(),
-              computeIdToComputeData.getValue());
+          computeIdToComputeData.getValue());
     }
 
     return null;
@@ -3171,15 +3258,15 @@ public class UnifiedCompositionService {
   getComputeTypeAndComputeTemplateByPortId(String portId, String serviceTemplateFileName,
                                            ConsolidationData consolidationData) {
     FileComputeConsolidationData fileComputeConsolidationData =
-            consolidationData.getComputeConsolidationData()
-                    .getFileComputeConsolidationData(serviceTemplateFileName);
+        consolidationData.getComputeConsolidationData()
+            .getFileComputeConsolidationData(serviceTemplateFileName);
     Set<String> computeTypes =
-            fileComputeConsolidationData.getAllComputeTypes();
+        fileComputeConsolidationData.getAllComputeTypes();
 
     for (String computeType : computeTypes) {
       Collection<ComputeTemplateConsolidationData> computeTemplateConsolidationDatas =
-              fileComputeConsolidationData.getTypeComputeConsolidationData(computeType)
-                      .getAllComputeTemplateConsolidationData();
+          fileComputeConsolidationData.getTypeComputeConsolidationData(computeType)
+              .getAllComputeTemplateConsolidationData();
 
       for (ComputeTemplateConsolidationData compute : computeTemplateConsolidationDatas) {
         if (ConsolidationDataUtil.isComputeReferenceToPortId(compute, portId)) {
@@ -3196,16 +3283,16 @@ public class UnifiedCompositionService {
                                        String serviceTemplateFileName,
                                        TranslationContext context) {
     UnifiedSubstitutionData unifiedSubstitutionData =
-            context.getUnifiedSubstitutionData().get(serviceTemplateFileName);
+        context.getUnifiedSubstitutionData().get(serviceTemplateFileName);
     if (Objects.isNull(unifiedSubstitutionData)) {
       return false;
     }
 
     UnifiedCompositionEntity actualUnifiedCompositionEntity =
-            unifiedSubstitutionData.getCleanedNodeTemplateCompositionEntity(id);
+        unifiedSubstitutionData.getCleanedNodeTemplateCompositionEntity(id);
 
     return actualUnifiedCompositionEntity == null ? false
-            : actualUnifiedCompositionEntity.equals(expectedUnifiedCompositionEntity);
+        : actualUnifiedCompositionEntity.equals(expectedUnifiedCompositionEntity);
   }
 
   private boolean isHeatStackGroup(String groupType) {
@@ -3219,14 +3306,14 @@ public class UnifiedCompositionService {
                                       String portNodeTemplateId) {
     //Get the input prefix to extract the property name from the input name
     String portInputPrefix = getPortInputPrefix(
-            portNodeTemplateId, portInputType);
+        portNodeTemplateId, portInputType);
     //Get the property name from the input
     Optional<String> propertyName = getPropertyNameFromInput(inputName,
-            UnifiedCompositionEntity.Port, computeType, portInputPrefix);
+        UnifiedCompositionEntity.Port, computeType, portInputPrefix);
     //Get the property value from the node template
     if (propertyName.isPresent()) {
       NodeTemplate portNodeTemplate = DataModelUtil.getNodeTemplate(serviceTemplate,
-              portNodeTemplateId);
+          portNodeTemplateId);
       if (Objects.nonNull(portNodeTemplate)) {
         return getPropertyValueFromNodeTemplate(propertyName.get(), portNodeTemplate);
       }
@@ -3235,9 +3322,9 @@ public class UnifiedCompositionService {
   }
 
   private Optional<String> getPortTypeFromInput(
-          String inputName,
-          String portNodeTemplateId,
-          ComputeTemplateConsolidationData computeTemplateConsolidationData) {
+      String inputName,
+      String portNodeTemplateId,
+      ComputeTemplateConsolidationData computeTemplateConsolidationData) {
     String portTypeFromInput = null;
     String portInputPrefix = UnifiedCompositionEntity.Port.name().toLowerCase() + "_";
     String portNodeTemplateIdPrefix = portInputPrefix + portNodeTemplateId;
@@ -3256,14 +3343,14 @@ public class UnifiedCompositionService {
   }
 
   private Object getComputePropertyValue(
-          String inputName,
-          ServiceTemplate serviceTemplate,
-          ComputeTemplateConsolidationData computeTemplateConsolidationData) {
+      String inputName,
+      ServiceTemplate serviceTemplate,
+      ComputeTemplateConsolidationData computeTemplateConsolidationData) {
     NodeTemplate nodeTemplate = DataModelUtil.getNodeTemplate(serviceTemplate,
-            computeTemplateConsolidationData.getNodeTemplateId());
+        computeTemplateConsolidationData.getNodeTemplateId());
     String nodeType = getComputeTypeSuffix(nodeTemplate.getType());
     Optional<String> propertyName =
-            getPropertyNameFromInput(inputName, UnifiedCompositionEntity.Compute, nodeType, null);
+        getPropertyNameFromInput(inputName, UnifiedCompositionEntity.Compute, nodeType, null);
     if (propertyName.isPresent()) {
       return getPropertyValueFromNodeTemplate(propertyName.get(), nodeTemplate);
     }
@@ -3276,13 +3363,13 @@ public class UnifiedCompositionService {
                                                      EntityConsolidationData entity,
                                                      TranslationContext context) {
     NodeTemplate nodeTemplate =
-            getNodeTemplate(entity.getNodeTemplateId(), serviceTemplate, context);
+        getNodeTemplate(entity.getNodeTemplateId(), serviceTemplate, context);
 
     Object propertyValueFromNodeTemplate =
-            getPropertyValueFromNodeTemplate(identicalValuePropertyName, nodeTemplate);
+        getPropertyValueFromNodeTemplate(identicalValuePropertyName, nodeTemplate);
 
     return Objects.isNull(propertyValueFromNodeTemplate) ? Optional.empty()
-            : Optional.of(propertyValueFromNodeTemplate);
+        : Optional.of(propertyValueFromNodeTemplate);
   }
 
   private UnifiedCompositionEntity getInputCompositionEntity(String inputName) {
@@ -3297,14 +3384,14 @@ public class UnifiedCompositionService {
   }
 
   private Optional<String> getPropertyNameFromInput(
-          String inputName,
-          UnifiedCompositionEntity compositionEntity,
-          String computeType, String portInputPrefix) {
+      String inputName,
+      UnifiedCompositionEntity compositionEntity,
+      String computeType, String portInputPrefix) {
     String propertyName = null;
     switch (compositionEntity) {
       case Compute:
         propertyName = inputName.substring(inputName.lastIndexOf(computeType)
-                + computeType.length() + 1);
+            + computeType.length() + 1);
         break;
       case Port:
         if (inputName.startsWith(portInputPrefix)) {
@@ -3318,8 +3405,8 @@ public class UnifiedCompositionService {
   }
 
   private String getPortInputPrefix(
-          String portNodeTemplateId,
-          PortInputType portInputType) {
+      String portNodeTemplateId,
+      PortInputType portInputType) {
     String portInputPrefix = UnifiedCompositionEntity.Port.name().toLowerCase() + "_";
     String portType = ConsolidationDataUtil.getPortType(portNodeTemplateId);
     if (portInputType == PortInputType.NodeTemplateId) {
@@ -3335,14 +3422,14 @@ public class UnifiedCompositionService {
                                            TranslationContext context) {
 
     List<String> identicalValuePropertyList =
-            consolidationService.getPropertiesWithIdenticalVal(unifiedCompositionEntity, context);
+        consolidationService.getPropertiesWithIdenticalVal(unifiedCompositionEntity, context);
 
     StringBuilder builder = getPropertyValueStringBuilder(unifiedCompositionEntity);
 
     boolean isMatchingProperty = Pattern.matches(builder.toString(), inputName);
     return (isMatchingProperty
-            && isPropertyFromIdenticalValuesList(inputName, unifiedCompositionEntity,
-            identicalValuePropertyList));
+        && isPropertyFromIdenticalValuesList(inputName, unifiedCompositionEntity,
+        identicalValuePropertyList));
   }
 
   private boolean isPropertyFromIdenticalValuesList(String inputName,
@@ -3351,11 +3438,11 @@ public class UnifiedCompositionService {
     switch (unifiedCompositionEntity) {
       case Compute:
         return identicalValuePropertyList.contains(getIdenticalValuePropertyName(inputName,
-                unifiedCompositionEntity, null).get());
+            unifiedCompositionEntity, null).get());
 
       case Other:
         return identicalValuePropertyList.contains(getIdenticalValuePropertyName(inputName,
-                unifiedCompositionEntity, null).get());
+            unifiedCompositionEntity, null).get());
 
       case Port:
         return getPortPropertyNameFromInput(inputName, identicalValuePropertyList).isPresent();
@@ -3376,7 +3463,7 @@ public class UnifiedCompositionService {
   }
 
   private StringBuilder getPropertyValueStringBuilder(
-          UnifiedCompositionEntity unifiedCompositionEntity) {
+      UnifiedCompositionEntity unifiedCompositionEntity) {
 
     switch (unifiedCompositionEntity) {
       case Compute:
@@ -3420,7 +3507,7 @@ public class UnifiedCompositionService {
 
       case Port:
         return getPortPropertyNameFromInput(input, consolidationService
-                .getPropertiesWithIdenticalVal(unifiedCompositionEntity, context));
+            .getPropertiesWithIdenticalVal(unifiedCompositionEntity, context));
 
       default:
         return Optional.empty();
@@ -3438,39 +3525,39 @@ public class UnifiedCompositionService {
   }
 
   private Map<String, UnifiedCompositionEntity> getAllConsolidationNodeTemplateIdAndType(
-          List<UnifiedCompositionData> unifiedCompositionDataList) {
+      List<UnifiedCompositionData> unifiedCompositionDataList) {
 
     Map<String, UnifiedCompositionEntity> consolidationNodeTemplateIdAndType = new HashMap<>();
     for (UnifiedCompositionData unifiedCompositionData : unifiedCompositionDataList) {
       ComputeTemplateConsolidationData computeTemplateConsolidationData =
-              unifiedCompositionData.getComputeTemplateConsolidationData();
+          unifiedCompositionData.getComputeTemplateConsolidationData();
       if (Objects.nonNull(computeTemplateConsolidationData)) {
         consolidationNodeTemplateIdAndType
-                .put(computeTemplateConsolidationData.getNodeTemplateId(),
-                        UnifiedCompositionEntity.Compute);
+            .put(computeTemplateConsolidationData.getNodeTemplateId(),
+                UnifiedCompositionEntity.Compute);
       }
       List<PortTemplateConsolidationData> portTemplateConsolidationDataList =
-              getPortTemplateConsolidationDataList(unifiedCompositionData);
+          getPortTemplateConsolidationDataList(unifiedCompositionData);
       for (PortTemplateConsolidationData portTemplateConsolidationData :
-              portTemplateConsolidationDataList) {
+          portTemplateConsolidationDataList) {
         consolidationNodeTemplateIdAndType.put(portTemplateConsolidationData.getNodeTemplateId(),
-                UnifiedCompositionEntity.Port);
+            UnifiedCompositionEntity.Port);
       }
       NestedTemplateConsolidationData nestedTemplateConsolidationData =
-              unifiedCompositionData.getNestedTemplateConsolidationData();
+          unifiedCompositionData.getNestedTemplateConsolidationData();
       if (Objects.nonNull(nestedTemplateConsolidationData)) {
         consolidationNodeTemplateIdAndType
-                .put(nestedTemplateConsolidationData.getNodeTemplateId(),
-                        UnifiedCompositionEntity.Nested);
+            .put(nestedTemplateConsolidationData.getNodeTemplateId(),
+                UnifiedCompositionEntity.Nested);
       }
     }
     return consolidationNodeTemplateIdAndType;
   }
 
   private List<PortTemplateConsolidationData> getPortTemplateConsolidationDataList(
-          UnifiedCompositionData unifiedCompositionData) {
+      UnifiedCompositionData unifiedCompositionData) {
     return unifiedCompositionData.getPortTemplateConsolidationDataList() == null ? new
-            ArrayList<>() : unifiedCompositionData.getPortTemplateConsolidationDataList();
+        ArrayList<>() : unifiedCompositionData.getPortTemplateConsolidationDataList();
   }
 
   private enum PortInputType {
index a58659f..cebe9ec 100644 (file)
@@ -175,4 +175,14 @@ public class UnifiedCompositionNestedSingleComputeFullTest extends BaseFullTrans
 
         testTranslationWithInit();
     }
+
+    @Test
+    public void testDuplicateReq() throws IOException {
+        inputFilesPath =
+            "/mock/services/heattotosca/fulltest/nestedSingleCompute/duplicateReqs/in";
+        outputFilesPath =
+            "/mock/services/heattotosca/fulltest/nestedSingleCompute/duplicateReqs/out";
+
+        testTranslationWithInit();
+    }
 }
index c24fab0..4b86407 100644 (file)
@@ -5,6 +5,85 @@ imports:
 - openecomp_heat_index:
     file: openecomp-heat/_index.yml
 node_types:
+  org.openecomp.resource.vfc.nodes.heat.pd_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      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
+      compute_pd_server_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      compute_pd_server_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_pd01_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_pd01_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      compute_pd_server_user_data_format:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
   org.openecomp.resource.abstract.nodes.pd_server:
     derived_from: org.openecomp.resource.abstract.nodes.VFC
     properties:
@@ -419,4 +498,4 @@ node_types:
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
-        - UNBOUNDED
+        - UNBOUNDED
\ No newline at end of file
index c24fab0..4b86407 100644 (file)
@@ -5,6 +5,85 @@ imports:
 - openecomp_heat_index:
     file: openecomp-heat/_index.yml
 node_types:
+  org.openecomp.resource.vfc.nodes.heat.pd_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      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
+      compute_pd_server_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      compute_pd_server_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_pd01_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_pd01_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      compute_pd_server_user_data_format:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
   org.openecomp.resource.abstract.nodes.pd_server:
     derived_from: org.openecomp.resource.abstract.nodes.VFC
     properties:
@@ -419,4 +498,4 @@ node_types:
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
-        - UNBOUNDED
+        - UNBOUNDED
\ No newline at end of file
index c24fab0..4b86407 100644 (file)
@@ -5,6 +5,85 @@ imports:
 - openecomp_heat_index:
     file: openecomp-heat/_index.yml
 node_types:
+  org.openecomp.resource.vfc.nodes.heat.pd_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      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
+      compute_pd_server_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      compute_pd_server_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_pd01_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_pd01_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      compute_pd_server_user_data_format:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
   org.openecomp.resource.abstract.nodes.pd_server:
     derived_from: org.openecomp.resource.abstract.nodes.VFC
     properties:
@@ -419,4 +498,4 @@ node_types:
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
-        - UNBOUNDED
+        - UNBOUNDED
\ No newline at end of file
index 1da6af4..b112901 100644 (file)
@@ -5,6 +5,103 @@ imports:
 - openecomp_heat_index:
     file: openecomp-heat/_index.yml
 node_types:
+  org.openecomp.resource.vfc.nodes.heat.pd_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      compute_pd_server_key_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      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
+      compute_pd_server_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      compute_pd_server_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      compute_pd_server_personality:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      compute_pd_server_image_update_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_pd01_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_pd01_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      compute_pd_server_user_data_format:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
   org.openecomp.resource.abstract.nodes.pd_server:
     derived_from: org.openecomp.resource.abstract.nodes.VFC
     properties:
@@ -437,4 +534,4 @@ node_types:
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
-        - UNBOUNDED
+        - UNBOUNDED
\ No newline at end of file
index 6ea3983..efa8626 100644 (file)
@@ -347,28 +347,6 @@ topology_template:
           capability: tosca.capabilities.network.Linkable
           node: nested_network
           relationship: tosca.relationships.network.LinksTo
-      - dependency_pcm_port_1:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_port_1:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
-      - dependency_server_pcm:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_server_pcm:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
-      - dependency_pcm_port_0:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_port_0:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
     abstract_1c2_catalog_instance_0:
       type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance
       directives:
index f917dda..f6cb6d1 100644 (file)
@@ -166,10 +166,6 @@ topology_template:
           capability: tosca.capabilities.Node
           node: nestedWithNoNovaHadDependencyToIt
           relationship: tosca.relationships.DependsOn
-      - dependency_1b01_single_1B_b_single_1b:
-          capability: tosca.capabilities.Node
-          node: nestedWithNoNovaHadDependencyToIt
-          relationship: tosca.relationships.DependsOn
       - link_b_single_1b_1b_t2_port:
           capability: tosca.capabilities.network.Linkable
           node: b_single_1b_network
@@ -251,18 +247,10 @@ topology_template:
           capability: tosca.capabilities.Node
           node: nestedWithNoNovaHadDependencyToIt
           relationship: tosca.relationships.DependsOn
-      - dependency_1c102_scalling_instance_1C1_1c1_scalling_instance:
-          capability: tosca.capabilities.Node
-          node: nestedWithNoNovaHadDependencyToIt
-          relationship: tosca.relationships.DependsOn
       - link_1c1_scalling_instance_1c1_t1_port:
           capability: tosca.capabilities.network.Linkable
           node: 1c1_scalling_instance_network
           relationship: tosca.relationships.network.LinksTo
-      - dependency_1c101_scalling_instance_1C1_1c1_scalling_instance:
-          capability: tosca.capabilities.Node
-          node: nestedWithNoNovaHadDependencyToIt
-          relationship: tosca.relationships.DependsOn
     b_single_1b_network:
       type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
       properties:
@@ -320,28 +308,10 @@ topology_template:
           capability: tosca.capabilities.network.Linkable
           node: nested_network
           relationship: tosca.relationships.network.LinksTo
-      - dependency_pcm_port_1:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_port_1:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
       - dependency_server_pcm:
           capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_server_pcm:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
-      - dependency_pcm_port_0:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
+          node: nestedWithNoNovaHadDependencyToIt
           relationship: tosca.relationships.DependsOn
-      - link_pcm_port_0:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
     abstract_1c2_catalog_instance_0:
       type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance
       directives:
@@ -397,10 +367,6 @@ topology_template:
           capability: tosca.capabilities.Node
           node: nestedWithNoNovaHadDependencyToIt
           relationship: tosca.relationships.DependsOn
-      - dependency_1c2_t1_port_0_1c2_catalog_instance_1c2_t1_port:
-          capability: tosca.capabilities.Node
-          node: nestedWithNoNovaHadDependencyToIt
-          relationship: tosca.relationships.DependsOn
       - link_1c2_catalog_instance_1c2_t2_port:
           capability: tosca.capabilities.network.Linkable
           node: 1c2_catalog_instance_network
@@ -462,10 +428,6 @@ topology_template:
           capability: tosca.capabilities.Node
           node: nestedWithNoNovaHadDependencyToIt
           relationship: tosca.relationships.DependsOn
-      - dependency_1c2_t1_port_1_1c2_catalog_instance_1c2_t1_port:
-          capability: tosca.capabilities.Node
-          node: nestedWithNoNovaHadDependencyToIt
-          relationship: tosca.relationships.DependsOn
       - link_1c2_catalog_instance_1c2_t2_port:
           capability: tosca.capabilities.network.Linkable
           node: 1c2_catalog_instance_network
@@ -699,10 +661,6 @@ topology_template:
           capability: tosca.capabilities.Node
           node: nestedWithNoNovaHadDependencyToIt
           relationship: tosca.relationships.DependsOn
-      - dependency_1a_single_1A_a_single_1a:
-          capability: tosca.capabilities.Node
-          node: nestedWithNoNovaHadDependencyToIt
-          relationship: tosca.relationships.DependsOn
       - link_a_single_1a_1a_t1_port:
           capability: tosca.capabilities.network.Linkable
           node: a_single_1a_network
index edc5d99..e26ec62 100644 (file)
@@ -260,28 +260,6 @@ topology_template:
           capability: tosca.capabilities.network.Linkable
           node: nested_network
           relationship: tosca.relationships.network.LinksTo
-      - dependency_pcm_port_1:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_port_1:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
-      - dependency_server_pcm:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_server_pcm:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
-      - dependency_pcm_port_0:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_port_0:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
     abstract_1c2_catalog_instance_0:
       type: org.openecomp.resource.abstract.nodes.1c2_catalog_instance
       directives:
index 594a544..3dacbb2 100644 (file)
@@ -1544,28 +1544,6 @@ topology_template:
           capability: tosca.capabilities.network.Linkable
           node: nested_network
           relationship: tosca.relationships.network.LinksTo
-      - dependency_pcm_port_1:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_port_1:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
-      - dependency_server_pcm:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_server_pcm:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
-      - dependency_pcm_port_0:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_port_0:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
     1c1_t2_port_12:
       type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
       properties:
@@ -1699,28 +1677,6 @@ topology_template:
           capability: tosca.capabilities.network.Linkable
           node: nested_network
           relationship: tosca.relationships.network.LinksTo
-      - dependency_pcm_port_1:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_port_1:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
-      - dependency_server_pcm:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_server_pcm:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
-      - dependency_pcm_port_0:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_port_0:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
     1c1_t2_port_11:
       type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
       properties:
index b41b4de..c23d70e 100644 (file)
@@ -10535,6 +10535,176 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
+  org.openecomp.resource.vfc.nodes.heat.ps_server_nested2_1b:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      port_ps_server_nested_b_port_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_ps_server_nested_b_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_ps_server_nested_b_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      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
+      compute_ps_server_nested2_1b_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_ps_server_nested_b_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      compute_ps_server_nested2_1b_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_ps_server_nested_b_port_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      port_ps_server_nested_b_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_ps_server_nested_b_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_ps_server_nested_b_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_ps_server_nested_b_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_ps_server_nested_b_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_ps_server_nested_b_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+  org.openecomp.resource.vfc.nodes.heat.ps_server_main_1b:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      port_ps_server_main_b_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_ps_server_main_b_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      compute_ps_server_main_1b_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_ps_server_main_b_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      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_ps_server_main_b_port_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_ps_server_main_b_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_ps_server_main_b_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_ps_server_main_b_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_ps_server_main_b_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_ps_server_main_b_port_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_ps_server_main_b_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      compute_ps_server_main_1b_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_ps_server_main_b_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
   org.openecomp.resource.abstract.nodes.ps_server_main_1b:
     derived_from: org.openecomp.resource.abstract.nodes.VFC
     properties:
@@ -10956,8 +11126,93 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
-  org.openecomp.resource.abstract.nodes.cmaui_1c1_nested2:
-    derived_from: org.openecomp.resource.abstract.nodes.VFC
+  org.openecomp.resource.vfc.nodes.heat.cmaui_1c1_main:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      port_cmaui_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_cmaui_port_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      port_cmaui_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      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_cmaui_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cmaui_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      compute_cmaui_1c1_main_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      compute_cmaui_1c1_main_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cmaui_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+  org.openecomp.resource.vfc.nodes.heat.cmaui_1c1_nested2:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
     properties:
       port_cmaui_port_vlan_requirements:
         type: list
@@ -11041,11 +11296,266 @@ node_types:
         status: SUPPORTED
         entry_schema:
           type: string
-    requirements:
-    - dependency_cmaui_1c1_nested2_cmaui_port:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
+  org.openecomp.resource.vfc.nodes.heat.pd_server_nested2_1b:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      port_pd_server_nested_b_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_pd_server_nested_b_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      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_pd_server_nested_b_port_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      port_pd_server_nested_b_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd_server_nested_b_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      compute_pd_server_nested2_1b_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      compute_pd_server_nested2_1b_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd_server_nested_b_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_pd_server_nested_b_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd_server_nested_b_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_pd_server_nested_b_port_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd_server_nested_b_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd_server_nested_b_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+  org.openecomp.resource.vfc.nodes.heat.pd_server_main_1b:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      port_pd_server_main_b_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      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_pd_server_main_b_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      compute_pd_server_main_1b_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd_server_main_b_port_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd_server_main_b_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd_server_main_b_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd_server_main_b_port_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      port_pd_server_main_b_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_pd_server_main_b_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd_server_main_b_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd_server_main_b_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      compute_pd_server_main_1b_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd_server_main_b_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+  org.openecomp.resource.abstract.nodes.cmaui_1c1_nested2:
+    derived_from: org.openecomp.resource.abstract.nodes.VFC
+    properties:
+      port_cmaui_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_cmaui_port_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      port_cmaui_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      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_cmaui_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cmaui_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      compute_cmaui_1c1_nested2_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cmaui_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      compute_cmaui_1c1_nested2_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+    requirements:
+    - dependency_cmaui_1c1_nested2_cmaui_port:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
         occurrences:
         - 0
         - UNBOUNDED
@@ -11857,370 +12367,914 @@ node_types:
         type: string
         required: true
         status: SUPPORTED
-      vm_image_name:
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      compute_cmaui_1c1_main_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      compute_cmaui_1c1_main_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cmaui_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+    requirements:
+    - dependency_cmaui_1c1_main_cmaui_port:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cmaui_1c1_main_cmaui_port:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_cmaui_1c1_main:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_cmaui_1c1_main:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    capabilities:
+      disk.device.iops_cmaui_1c1_main:
+        type: org.openecomp.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_cmaui_1c1_main:
+        type: org.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_cmaui_1c1_main:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_util_cmaui_1c1_main:
+        type: org.openecomp.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_cmaui_1c1_main:
+        type: org.openecomp.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_cmaui_1c1_main:
+        type: org.openecomp.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_cmaui_1c1_main_cmaui_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.requests_cmaui_1c1_main:
+        type: org.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_cmaui_1c1_main:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes.rate_cmaui_1c1_main:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_cmaui_1c1_main:
+        type: org.openecomp.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_cmaui_1c1_main:
+        type: org.openecomp.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_cmaui_1c1_main:
+        type: org.openecomp.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_cmaui_1c1_main:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cmaui_1c1_main_cmaui_port:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      instance_cmaui_1c1_main:
+        type: org.openecomp.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_cmaui_1c1_main:
+        type: org.openecomp.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_cmaui_1c1_main:
+        type: org.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_cmaui_1c1_main:
+        type: org.openecomp.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_cmaui_1c1_main:
+        type: org.openecomp.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_cmaui_1c1_main:
+        type: org.openecomp.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_cmaui_1c1_main:
+        type: org.openecomp.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_cmaui_1c1_main:
+        type: org.openecomp.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_cmaui_1c1_main_cmaui_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_cmaui_1c1_main:
+        type: org.openecomp.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_cmaui_1c1_main_cmaui_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.usage_cmaui_1c1_main:
+        type: org.openecomp.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_cmaui_1c1_main_cmaui_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_cmaui_1c1_main:
+        type: org.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_cmaui_1c1_main:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_cmaui_1c1_main:
+        type: org.openecomp.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_cmaui_1c1_main:
+        type: org.openecomp.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_cmaui_1c1_main_cmaui_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.requests.rate_cmaui_1c1_main:
+        type: org.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_cmaui_1c1_main_cmaui_port:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_cmaui_1c1_main_cmaui_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_cmaui_1c1_main:
+        type: org.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_cmaui_1c1_main:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_cmaui_1c1_main_cmaui_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_cmaui_1c1_main:
+        type: org.openecomp.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_cmaui_1c1_main_cmaui_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_cmaui_1c1_main:
+        type: org.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_cmaui_1c1_main:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_cmaui_1c1_main:
+        type: org.openecomp.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_cmaui_1c1_main:
+        type: org.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_cmaui_1c1_main_cmaui_port:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.device.usage_cmaui_1c1_main:
+        type: org.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_cmaui_1c1_main:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.latency_cmaui_1c1_main:
+        type: org.openecomp.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_cmaui_1c1_main:
+        type: org.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_cmaui_1c1_main:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.allocation_cmaui_1c1_main:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.heat.pd_server_pattern4_3:
+    derived_from: org.openecomp.resource.abstract.nodes.VFC
+    properties:
+      pd_server_pattern4_ips:
+        type: string
+        required: true
+        status: SUPPORTED
+      p1:
+        type: string
+        description: UID of OAM network
+        required: true
+        status: SUPPORTED
+      p2:
+        type: string
+        description: UID of OAM network
+        required: true
+        status: SUPPORTED
+      port_pd_server_pattern4_port_2_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_pd_server_pattern4_port_2_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_pd_server_pattern4_port_2_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd_server_pattern4_port_2_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      availability_zone_0:
+        type: string
+        description: availabilityzone name
+        required: true
+        status: SUPPORTED
+      port_pd_server_pattern4_port_2_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_pd_server_pattern4_port_1_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      net:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd_server_pattern4_port_1_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      pd_server_pattern4_flavor:
+        type: string
+        description: Flavor for PD server
+        required: true
+        status: SUPPORTED
+      port_pd_server_pattern4_port_2_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_pd_server_pattern4_port_1_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_pd_server_pattern4_port_1_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      security_group_name:
+        type: list
+        description: CMAUI1, CMAUI2 server names
+        required: true
+        status: SUPPORTED
+        entry_schema: *id001
+      ps_server_flavor:
+        type: string
+        description: Flavor for PS server
+        required: true
+        status: SUPPORTED
+      port_pd_server_pattern4_port_1_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      pd_server_pattern4_image:
+        type: string
+        description: Flavor for PD server
+        required: true
+        status: SUPPORTED
+      port_pd_server_pattern4_port_1_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd_server_pattern4_port_2_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd_server_pattern4_port_1_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_pd_server_pattern4_port_1_subnetpoolid:
         type: string
         required: true
         status: SUPPORTED
-      port_cmaui_port_ip_requirements:
-        type: list
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: org.openecomp.datatypes.network.IpRequirements
-      compute_cmaui_1c1_main_availability_zone:
-        type: list
+      port_pd_server_pattern4_port_2_subnetpoolid:
+        type: string
         required: true
         status: SUPPORTED
-        entry_schema:
-          type: string
-      compute_cmaui_1c1_main_name:
+      pd_server_pattern4_names:
         type: list
+        description: PD server names
         required: true
         status: SUPPORTED
-        entry_schema:
-          type: string
-      port_cmaui_port_subnetpoolid:
+        entry_schema: *id002
+    attributes:
+      pattern4_attr_1:
         type: string
-        required: true
+        description: pattern4_attr_1_value
         status: SUPPORTED
     requirements:
-    - dependency_cmaui_1c1_main_cmaui_port:
+    - dependency_server_pd_pattern4:
         capability: tosca.capabilities.Node
         node: tosca.nodes.Root
         relationship: tosca.relationships.DependsOn
         occurrences:
         - 0
         - UNBOUNDED
-    - link_cmaui_1c1_main_cmaui_port:
+    - local_storage_server_pd_pattern4:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_pd_server_pattern4_port_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd_server_pattern4_port_1:
         capability: tosca.capabilities.network.Linkable
         relationship: tosca.relationships.network.LinksTo
         occurrences:
         - 1
         - 1
-    - dependency_cmaui_1c1_main:
+    - dependency_pd_server_pattern4_port_2:
         capability: tosca.capabilities.Node
         node: tosca.nodes.Root
         relationship: tosca.relationships.DependsOn
         occurrences:
         - 0
         - UNBOUNDED
-    - local_storage_cmaui_1c1_main:
-        capability: tosca.capabilities.Attachment
-        node: tosca.nodes.BlockStorage
-        relationship: tosca.relationships.AttachesTo
+    - link_pd_server_pattern4_port_2:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
         occurrences:
-        - 0
-        - UNBOUNDED
+        - 1
+        - 1
     capabilities:
-      disk.device.iops_cmaui_1c1_main:
+      disk.root.size_server_pd_pattern4:
         type: org.openecomp.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_cmaui_1c1_main:
+      disk.device.write.bytes_server_pd_pattern4:
         type: org.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_cmaui_1c1_main:
-        type: tosca.capabilities.network.Bindable
+      network.outgoing.bytes_pd_server_pattern4_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      cpu_util_cmaui_1c1_main:
+      disk.allocation_server_pd_pattern4:
         type: org.openecomp.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_cmaui_1c1_main:
+      disk.device.usage_server_pd_pattern4:
         type: org.openecomp.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_cmaui_1c1_main:
+      network.outgoing.bytes_pd_server_pattern4_port_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      network.incoming.bytes.rate_cmaui_1c1_main_cmaui_port:
+      disk.write.bytes.rate_server_pd_pattern4:
         type: org.openecomp.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_cmaui_1c1_main:
+      disk.ephemeral.size_server_pd_pattern4:
         type: org.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_cmaui_1c1_main:
-        type: tosca.capabilities.Endpoint.Admin
+      cpu.delta_server_pd_pattern4:
+        type: org.openecomp.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_cmaui_1c1_main:
+      disk.write.bytes_server_pd_pattern4:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.iops_cmaui_1c1_main:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      feature_pd_server_pattern4_port_2:
+        type: tosca.capabilities.Node
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.read.requests.rate_cmaui_1c1_main:
+      feature_pd_server_pattern4_port_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.latency_server_pd_pattern4:
         type: org.openecomp.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_cmaui_1c1_main:
+      endpoint_server_pd_pattern4:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_pd_server_pattern4_port_2:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_pd_server_pattern4_port_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_server_pd_pattern4:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.rate_server_pd_pattern4:
         type: org.openecomp.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_cmaui_1c1_main:
+      instance_server_pd_pattern4:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      attachment_cmaui_1c1_main_cmaui_port:
-        type: tosca.capabilities.Attachment
+      cpu_server_pd_pattern4:
+        type: org.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_cmaui_1c1_main:
+      disk.device.read.requests_server_pd_pattern4:
         type: org.openecomp.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_cmaui_1c1_main:
+      host_server_pd_pattern4:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_util_server_pd_pattern4:
         type: org.openecomp.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_cmaui_1c1_main:
+      memory.resident_server_pd_pattern4:
         type: org.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_cmaui_1c1_main:
+      disk.read.requests_server_pd_pattern4:
         type: org.openecomp.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_cmaui_1c1_main:
+      disk.read.bytes.rate_server_pd_pattern4:
         type: org.openecomp.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_cmaui_1c1_main:
+      disk.device.write.bytes.rate_server_pd_pattern4:
         type: org.openecomp.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_cmaui_1c1_main:
+      disk.device.read.bytes_server_pd_pattern4:
         type: org.openecomp.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_cmaui_1c1_main:
+      disk.write.requests_server_pd_pattern4:
         type: org.openecomp.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_cmaui_1c1_main_cmaui_port:
+      disk.device.write.requests.rate_server_pd_pattern4:
         type: org.openecomp.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_cmaui_1c1_main:
+      memory.usage_server_pd_pattern4:
         type: org.openecomp.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_cmaui_1c1_main_cmaui_port:
+      vcpus_server_pd_pattern4:
         type: org.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_cmaui_1c1_main:
+      disk.capacity_server_pd_pattern4:
         type: org.openecomp.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_cmaui_1c1_main_cmaui_port:
+      binding_server_pd_pattern4:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_pd_server_pattern4_port_1:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      memory.resident_cmaui_1c1_main:
+      network.outpoing.packets_pd_server_pattern4_port_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      cpu.delta_cmaui_1c1_main:
+      network.incoming.packets.rate_pd_server_pattern4_port_1:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.capacity_cmaui_1c1_main:
+      network.incoming.bytes_pd_server_pattern4_port_1:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.ephemeral.size_cmaui_1c1_main:
+      disk.device.iops_server_pd_pattern4:
         type: org.openecomp.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_cmaui_1c1_main_cmaui_port:
+      network.incoming.packets.rate_pd_server_pattern4_port_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.write.requests.rate_cmaui_1c1_main:
+      network.incoming.bytes_pd_server_pattern4_port_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      feature_cmaui_1c1_main_cmaui_port:
-        type: tosca.capabilities.Node
+      disk.device.read.bytes.rate_server_pd_pattern4:
+        type: org.openecomp.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_cmaui_1c1_main_cmaui_port:
+      disk.device.allocation_server_pd_pattern4:
         type: org.openecomp.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_cmaui_1c1_main:
+      network.outgoing.bytes.rate_pd_server_pattern4_port_1:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      host_cmaui_1c1_main:
-        type: tosca.capabilities.Container
-        valid_source_types:
-        - tosca.nodes.SoftwareComponent
+      network.outgoing.bytes.rate_pd_server_pattern4_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      network.incoming.packets.rate_cmaui_1c1_main_cmaui_port:
+      disk.usage_server_pd_pattern4:
         type: org.openecomp.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_cmaui_1c1_main:
+      disk.read.bytes_server_pd_pattern4:
         type: org.openecomp.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_cmaui_1c1_main_cmaui_port:
+      os_server_pd_pattern4:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory_server_pd_pattern4:
         type: org.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_cmaui_1c1_main:
+      disk.iops_server_pd_pattern4:
         type: org.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_cmaui_1c1_main:
+      scalable_server_pd_pattern4:
         type: tosca.capabilities.Scalable
         occurrences:
         - 1
         - UNBOUNDED
-      cpu_cmaui_1c1_main:
+      binding_pd_server_pattern4_port_2:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      network.incoming.bytes.rate_pd_server_pattern4_port_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.allocation_cmaui_1c1_main:
+      disk.write.requests.rate_server_pd_pattern4:
         type: org.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_cmaui_1c1_main_cmaui_port:
+      disk.device.latency_server_pd_pattern4:
+        type: org.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_pd_server_pattern4_port_1:
         type: tosca.capabilities.network.Bindable
         valid_source_types:
         - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
         occurrences:
         - 0
         - UNBOUNDED
-      disk.device.usage_cmaui_1c1_main:
+      network.incoming.bytes.rate_pd_server_pattern4_port_1:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      os_cmaui_1c1_main:
-        type: tosca.capabilities.OperatingSystem
+      network.outgoing.packets.rate_pd_server_pattern4_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.latency_cmaui_1c1_main:
+      disk.device.write.requests_server_pd_pattern4:
         type: org.openecomp.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_cmaui_1c1_main:
+      network.incoming.packets_pd_server_pattern4_port_1:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      feature_cmaui_1c1_main:
-        type: tosca.capabilities.Node
+      network.outgoing.packets.rate_pd_server_pattern4_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.allocation_cmaui_1c1_main:
+      network.incoming.packets_pd_server_pattern4_port_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-  org.openecomp.resource.abstract.nodes.heat.pd_server_pattern4_3:
-    derived_from: org.openecomp.resource.abstract.nodes.VFC
+      disk.device.capacity_server_pd_pattern4:
+        type: org.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.vfc.nodes.heat.pd_server_pattern4:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
     properties:
       pd_server_pattern4_ips:
         type: string
@@ -12303,7 +13357,8 @@ node_types:
         description: CMAUI1, CMAUI2 server names
         required: true
         status: SUPPORTED
-        entry_schema: *id001
+        entry_schema:
+          type: string
       ps_server_flavor:
         type: string
         description: Flavor for PS server
@@ -12343,7 +13398,8 @@ node_types:
         description: PD server names
         required: true
         status: SUPPORTED
-        entry_schema: *id002
+        entry_schema:
+          type: string
     attributes:
       pattern4_attr_1:
         type: string
@@ -12762,4 +13818,4 @@ node_types:
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
-        - UNBOUNDED
+        - UNBOUNDED
\ No newline at end of file
index da6640c..5de9f39 100644 (file)
@@ -185,10 +185,6 @@ topology_template:
           capability: tosca.capabilities.Node
           node: test_nested_no_compute
           relationship: tosca.relationships.DependsOn
-      - dependency_server_main_ps_1b_ps_server_main_1b:
-          capability: tosca.capabilities.Node
-          node: test_nested_no_compute
-          relationship: tosca.relationships.DependsOn
     test_nested1Level_duplicate_same_file:
       type: org.openecomp.resource.abstract.nodes.heat.nested1
       directives:
@@ -263,14 +259,6 @@ topology_template:
           capability: tosca.capabilities.Node
           node: test_nested_no_compute
           relationship: tosca.relationships.DependsOn
-      - dependency_server_main_1c1_cmaui_2_cmaui_1c1_main:
-          capability: tosca.capabilities.Node
-          node: test_nested_no_compute
-          relationship: tosca.relationships.DependsOn
-      - dependency_server_main_1c1_cmaui_1_cmaui_1c1_main:
-          capability: tosca.capabilities.Node
-          node: test_nested_no_compute
-          relationship: tosca.relationships.DependsOn
     test_nested_pattern_4_main_0:
       type: org.openecomp.resource.abstract.nodes.heat.pd_server_pattern4
       directives:
@@ -301,26 +289,8 @@ topology_template:
       requirements:
       - dependency_server_pd_pattern4:
           capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_server_pd_pattern4:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
-      - dependency_pd_server_pattern4_port_1:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pd_server_pattern4_port_1:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
-      - dependency_pd_server_pattern4_port_2:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
+          node: test_nested_no_compute
           relationship: tosca.relationships.DependsOn
-      - link_pd_server_pattern4_port_2:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
     test_nested1Level:
       type: org.openecomp.resource.abstract.nodes.heat.nested1
       directives:
index 4308e66..7e4eb51 100644 (file)
@@ -130,29 +130,6 @@ topology_template:
             is_required: true
           floating_ip_count_required:
             is_required: false
-      requirements:
-      - dependency_server_pd_pattern4:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_server_pd_pattern4:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
-      - dependency_pd_server_pattern4_port_1:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pd_server_pattern4_port_1:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
-      - dependency_pd_server_pattern4_port_2:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pd_server_pattern4_port_2:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
     abstract_ps_server_main_1b:
       type: org.openecomp.resource.abstract.nodes.ps_server_main_1b
       directives:
index 4a129de..ffc5015 100644 (file)
@@ -149,10 +149,6 @@ topology_template:
           capability: tosca.capabilities.Node
           node: test_nested3Level
           relationship: tosca.relationships.DependsOn
-      - dependency_server_nested2_pd_1b_pd_server_nested2_1b:
-          capability: tosca.capabilities.Node
-          node: test_nested3Level
-          relationship: tosca.relationships.DependsOn
     test_nested_pattern_4_nested2:
       type: org.openecomp.resource.abstract.nodes.heat.pd_server_pattern4
       directives:
@@ -183,26 +179,8 @@ topology_template:
       requirements:
       - dependency_server_pd_pattern4:
           capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
+          node: test_resourceGroup
           relationship: tosca.relationships.DependsOn
-      - local_storage_server_pd_pattern4:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
-      - dependency_pd_server_pattern4_port_1:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pd_server_pattern4_port_1:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
-      - dependency_pd_server_pattern4_port_2:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pd_server_pattern4_port_2:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
     test_nested3Level:
       type: org.openecomp.resource.abstract.nodes.heat.nested3
       directives:
@@ -248,29 +226,6 @@ topology_template:
             is_required: true
           floating_ip_count_required:
             is_required: false
-      requirements:
-      - dependency_server_pd_pattern4:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_server_pd_pattern4:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
-      - dependency_pd_server_pattern4_port_1:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pd_server_pattern4_port_1:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
-      - dependency_pd_server_pattern4_port_2:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pd_server_pattern4_port_2:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
     abstract_ps_server_nested2_1b:
       type: org.openecomp.resource.abstract.nodes.ps_server_nested2_1b
       directives:
@@ -379,14 +334,6 @@ topology_template:
           capability: tosca.capabilities.Node
           node: test_nested3Level
           relationship: tosca.relationships.DependsOn
-      - dependency_server_nested2_1c1_cmaui_2_cmaui_1c1_nested2:
-          capability: tosca.capabilities.Node
-          node: test_nested3Level
-          relationship: tosca.relationships.DependsOn
-      - dependency_server_nested2_1c1_cmaui_1_cmaui_1c1_nested2:
-          capability: tosca.capabilities.Node
-          node: test_nested3Level
-          relationship: tosca.relationships.DependsOn
   groups:
     nested2_group:
       type: org.openecomp.groups.heat.HeatStack
index e8301c0..fb315b1 100644 (file)
@@ -5,6 +5,97 @@ imports:
 - openecomp_heat_index:
     file: openecomp-heat/_index.yml
 node_types:
+  org.openecomp.resource.vfc.nodes.heat.pd_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      port_pd_server_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_pd_server_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      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_pd_server_port_security_groups:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      compute_pd_server_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      compute_pd_server_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd_server_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd_server_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd_server_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_pd_server_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd_server_port_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd_server_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_pd_server_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_pd_server_port_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd_server_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
   org.openecomp.resource.abstract.nodes.pd_server:
     derived_from: org.openecomp.resource.abstract.nodes.VFC
     properties:
@@ -981,17 +1072,41 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
-  org.openecomp.resource.abstract.nodes.oam_server:
-    derived_from: org.openecomp.resource.abstract.nodes.VFC
+  org.openecomp.resource.vfc.nodes.heat.ps_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
     properties:
-      port_oam_server_port_network:
+      port_ps_server_port_network:
         type: list
         required: true
         status: SUPPORTED
         entry_schema:
           type: string
-      port_oam_server_port_order:
-        type: integer
+      compute_ps_server_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_ps_server_port_security_groups:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_ps_server_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      compute_ps_server_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_ps_server_port_network_role:
+        type: string
         required: true
         status: SUPPORTED
       index_value:
@@ -1002,407 +1117,1114 @@ node_types:
         status: SUPPORTED
         constraints:
         - greater_or_equal: 0
-      port_oam_server_port_security_groups:
-        type: list
+      port_ps_server_port_order:
+        type: integer
         required: true
         status: SUPPORTED
-        entry_schema:
-          type: json
-      port_oam_server_port_replacement_policy:
+      port_ps_server_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_ps_server_port_fixed_ips:
         type: list
         required: true
         status: SUPPORTED
         entry_schema:
-          type: string
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
       vm_flavor_name:
         type: string
         required: true
         status: SUPPORTED
-      port_oam_server_port_mac_requirements:
+      port_ps_server_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_ps_server_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_ps_server_port_mac_requirements:
         type: org.openecomp.datatypes.network.MacRequirements
         required: true
         status: SUPPORTED
-      port_oam_server_port_exCP_naming:
-        type: org.openecomp.datatypes.Naming
+      vm_image_name:
+        type: string
         required: true
         status: SUPPORTED
-      compute_oam_server_availability_zone:
+      port_ps_server_port_replacement_policy:
         type: list
         required: true
         status: SUPPORTED
         entry_schema:
           type: string
-      vm_image_name:
+      port_ps_server_port_network_role_tag:
         type: string
         required: true
         status: SUPPORTED
-      port_oam_server_port_fixed_ips:
+  org.openecomp.resource.vfc.nodes.heat.sm_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      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_sm_server_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_sm_server_port_vlan_requirements:
         type: list
         required: true
         status: SUPPORTED
         entry_schema:
-          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
-      port_oam_server_port_subnetpoolid:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_sm_server_port_subnetpoolid:
         type: string
         required: true
         status: SUPPORTED
-      port_oam_server_port_network_role_tag:
+      vm_flavor_name:
         type: string
         required: true
         status: SUPPORTED
-      port_oam_server_port_network_role:
+      port_sm_server_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_sm_server_port_network_role_tag:
         type: string
         required: true
         status: SUPPORTED
-      port_oam_server_port_vlan_requirements:
+      port_sm_server_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_sm_server_port_network:
         type: list
         required: true
         status: SUPPORTED
         entry_schema:
-          type: org.openecomp.datatypes.network.VlanRequirements
-      compute_oam_server_name:
+          type: string
+      compute_sm_server_name:
         type: list
         required: true
         status: SUPPORTED
         entry_schema:
           type: string
-      port_oam_server_port_ip_requirements:
+      port_sm_server_port_ip_requirements:
         type: list
         required: true
         status: SUPPORTED
         entry_schema:
           type: org.openecomp.datatypes.network.IpRequirements
-    requirements:
-    - dependency_oam_server:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - local_storage_oam_server:
-        capability: tosca.capabilities.Attachment
-        node: tosca.nodes.BlockStorage
-        relationship: tosca.relationships.AttachesTo
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - dependency_oam_server_oam_server_port:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      compute_sm_server_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_sm_server_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_sm_server_port_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_sm_server_port_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      port_sm_server_port_security_groups:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+  org.openecomp.resource.abstract.nodes.oam_server:
+    derived_from: org.openecomp.resource.abstract.nodes.VFC
+    properties:
+      port_oam_server_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_oam_server_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      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_oam_server_port_security_groups:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_oam_server_port_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_oam_server_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_oam_server_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      compute_oam_server_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_oam_server_port_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      port_oam_server_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_oam_server_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_oam_server_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_oam_server_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      compute_oam_server_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_oam_server_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+    requirements:
+    - dependency_oam_server:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_oam_server:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_oam_server_oam_server_port:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_oam_server_oam_server_port:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      cpu.delta_oam_server:
+        type: org.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_oam_server:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.usage_oam_server:
+        type: org.openecomp.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_oam_server_oam_server_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_oam_server:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes_oam_server:
+        type: org.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_oam_server:
+        type: org.openecomp.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_oam_server_oam_server_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.capacity_oam_server:
+        type: org.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_oam_server:
+        type: org.openecomp.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_oam_server:
+        type: org.openecomp.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_oam_server:
+        type: org.openecomp.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_oam_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_oam_server_oam_server_port:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_oam_server:
+        type: org.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_oam_server:
+        type: org.openecomp.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_oam_server:
+        type: org.openecomp.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_oam_server:
+        type: org.openecomp.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_oam_server:
+        type: org.openecomp.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_oam_server:
+        type: org.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_oam_server:
+        type: org.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_oam_server:
+        type: org.openecomp.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_oam_server:
+        type: org.openecomp.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_oam_server:
+        type: org.openecomp.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_oam_server:
+        type: org.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_oam_server_oam_server_port:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.iops_oam_server:
+        type: org.openecomp.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_oam_server:
+        type: org.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_oam_server:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes.rate_oam_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.usage_oam_server:
+        type: org.openecomp.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_oam_server_oam_server_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_oam_server:
+        type: org.openecomp.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_oam_server:
+        type: org.openecomp.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_oam_server:
+        type: org.openecomp.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_oam_server:
+        type: org.openecomp.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_oam_server_oam_server_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_oam_server:
+        type: org.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_oam_server_oam_server_port:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.usage_oam_server:
+        type: org.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_oam_server:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_oam_server_oam_server_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_oam_server:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests.rate_oam_server:
+        type: org.openecomp.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_oam_server_oam_server_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_oam_server:
+        type: org.openecomp.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_oam_server:
+        type: org.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_oam_server:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes_oam_server:
+        type: org.openecomp.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_oam_server_oam_server_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_oam_server_oam_server_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_oam_server:
+        type: org.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.vfc.nodes.heat.cmaui:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      cmaui_names:
+        type: list
+        description: CMAUI1, CMAUI2 server names
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      p1:
+        type: string
+        description: UID of OAM network
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_8_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      p2:
+        type: string
+        required: true
+        status: SUPPORTED
+      net2:
+        type: string
+        description: Contrail V2 network
+        required: true
+        status: SUPPORTED
+      net1:
+        type: string
+        description: Neutron network
+        required: true
+        status: SUPPORTED
+      indx:
+        type: float
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_8_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_7_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      availability_zone_0:
+        type: string
+        description: availabilityzone name
+        required: true
+        status: SUPPORTED
+      net:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_8_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_cmaui_port_7_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      security_group_name:
+        type: list
+        description: CMAUI1, CMAUI2 server names
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cmaui_port_8_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_8_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_7_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_cmaui_port_7_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      cmaui_image:
+        type: string
+        description: Image for CMAUI server
+        required: true
+        status: SUPPORTED
+      cmaui_flavor:
+        type: string
+        description: Flavor for CMAUI server
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_7_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_7_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_cmaui_port_7_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_7_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_8_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      cmaui_oam_ips:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_8_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_8_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+    requirements:
+    - dependency_cmaui_port_7:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cmaui_port_7:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_cmaui_port_8:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_cmaui_port_8:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_server_cmaui:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_server_cmaui:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    capabilities:
+      cpu.delta_server_cmaui:
+        type: org.openecomp.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_server_cmaui:
+        type: org.openecomp.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_server_cmaui:
+        type: org.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_cmaui_port_7:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_cmaui_port_8:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      scalable_server_cmaui:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes.rate_server_cmaui:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
-        - 0
+        - 1
         - UNBOUNDED
-    - link_oam_server_oam_server_port:
-        capability: tosca.capabilities.network.Linkable
-        relationship: tosca.relationships.network.LinksTo
+      cpu_server_cmaui:
+        type: org.openecomp.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_server_cmaui:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
         - 1
-    capabilities:
-      cpu.delta_oam_server:
+        - UNBOUNDED
+      disk.device.read.bytes.rate_server_cmaui:
         type: org.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_oam_server:
+      host_server_cmaui:
         type: tosca.capabilities.Container
         valid_source_types:
         - tosca.nodes.SoftwareComponent
         occurrences:
         - 1
         - UNBOUNDED
-      disk.usage_oam_server:
+      cpu_util_server_cmaui:
         type: org.openecomp.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_oam_server_oam_server_port:
+      network.outgoing.packets.rate_cmaui_port_8:
         type: org.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_oam_server:
-        type: tosca.capabilities.Node
+      attachment_cmaui_port_7:
+        type: tosca.capabilities.Attachment
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.write.bytes_oam_server:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      attachment_cmaui_port_8:
+        type: tosca.capabilities.Attachment
         occurrences:
         - 1
         - UNBOUNDED
-      cpu_util_oam_server:
+      network.outgoing.packets.rate_cmaui_port_7:
         type: org.openecomp.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_oam_server_oam_server_port:
+      disk.device.latency_server_cmaui:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.capacity_oam_server:
+      disk.device.write.requests_server_cmaui:
         type: org.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_oam_server:
+      disk.read.requests_server_cmaui:
         type: org.openecomp.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_oam_server:
+      disk.device.capacity_server_cmaui:
         type: org.openecomp.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_oam_server:
+      disk.usage_server_cmaui:
         type: org.openecomp.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_oam_server:
+      disk.device.usage_server_cmaui:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      attachment_oam_server_oam_server_port:
-        type: tosca.capabilities.Attachment
+      disk.capacity_server_cmaui:
+        type: org.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_oam_server:
+      disk.write.requests.rate_server_cmaui:
         type: org.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_oam_server:
+      disk.device.read.requests_server_cmaui:
         type: org.openecomp.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_oam_server:
+      instance_server_cmaui:
         type: org.openecomp.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_oam_server:
+      disk.device.read.bytes_server_cmaui:
         type: org.openecomp.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_oam_server:
+      network.incoming.packets.rate_cmaui_port_7:
         type: org.openecomp.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_oam_server:
+      memory_server_cmaui:
         type: org.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_oam_server:
+      network.incoming.packets.rate_cmaui_port_8:
         type: org.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_oam_server:
+      disk.root.size_server_cmaui:
         type: org.openecomp.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_oam_server:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      binding_server_cmaui:
+        type: tosca.capabilities.network.Bindable
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.allocation_oam_server:
+      disk.device.read.requests.rate_server_cmaui:
         type: org.openecomp.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_oam_server:
+      disk.write.bytes_server_cmaui:
         type: org.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_oam_server_oam_server_port:
-        type: tosca.capabilities.network.Bindable
-        valid_source_types:
-        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+      os_server_cmaui:
+        type: tosca.capabilities.OperatingSystem
         occurrences:
-        - 0
+        - 1
         - UNBOUNDED
-      disk.iops_oam_server:
+      disk.device.write.bytes.rate_server_cmaui:
         type: org.openecomp.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_oam_server:
+      network.incoming.packets_cmaui_port_7:
         type: org.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_oam_server:
-        type: tosca.capabilities.network.Bindable
+      network.incoming.packets_cmaui_port_8:
+        type: org.openecomp.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_oam_server:
+      network.incoming.bytes.rate_cmaui_port_7:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.usage_oam_server:
+      network.incoming.bytes.rate_cmaui_port_8:
         type: org.openecomp.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_oam_server_oam_server_port:
+      memory.resident_server_cmaui:
         type: org.openecomp.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_oam_server:
+      network.outgoing.bytes_cmaui_port_7:
         type: org.openecomp.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_oam_server:
+      disk.latency_server_cmaui:
         type: org.openecomp.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_oam_server:
+      feature_server_cmaui:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_cmaui_port_7:
         type: org.openecomp.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_oam_server:
+      vcpus_server_cmaui:
         type: org.openecomp.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_oam_server_oam_server_port:
+      network.outpoing.packets_cmaui_port_8:
         type: org.openecomp.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_oam_server:
+      disk.device.write.bytes_server_cmaui:
         type: org.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_oam_server_oam_server_port:
-        type: tosca.capabilities.Node
+      binding_cmaui_port_7:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
         occurrences:
-        - 1
+        - 0
         - UNBOUNDED
-      memory.usage_oam_server:
+      network.outgoing.bytes_cmaui_port_8:
         type: org.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_oam_server:
-        type: tosca.capabilities.Endpoint.Admin
+      binding_cmaui_port_8:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
         occurrences:
-        - 1
+        - 0
         - UNBOUNDED
-      network.outgoing.bytes.rate_oam_server_oam_server_port:
+      disk.allocation_server_cmaui:
         type: org.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_oam_server:
-        type: tosca.capabilities.Scalable
+      disk.write.requests_server_cmaui:
+        type: org.openecomp.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_oam_server:
+      memory.usage_server_cmaui:
         type: org.openecomp.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_oam_server_oam_server_port:
+      disk.ephemeral.size_server_cmaui:
         type: org.openecomp.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_oam_server:
+      network.outgoing.bytes.rate_cmaui_port_7:
         type: org.openecomp.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_oam_server:
+      network.incoming.bytes_cmaui_port_8:
         type: org.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_oam_server:
-        type: tosca.capabilities.OperatingSystem
+      endpoint_server_cmaui:
+        type: tosca.capabilities.Endpoint.Admin
         occurrences:
         - 1
         - UNBOUNDED
-      disk.read.bytes_oam_server:
+      network.incoming.bytes_cmaui_port_7:
         type: org.openecomp.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_oam_server_oam_server_port:
+      disk.iops_server_cmaui:
         type: org.openecomp.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_oam_server_oam_server_port:
+      network.outgoing.bytes.rate_cmaui_port_8:
         type: org.openecomp.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_oam_server:
+      disk.device.iops_server_cmaui:
+        type: org.openecomp.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_server_cmaui:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
@@ -5292,3 +6114,94 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
+  org.openecomp.resource.vfc.nodes.heat.oam_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      port_oam_server_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_oam_server_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      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_oam_server_port_security_groups:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_oam_server_port_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_oam_server_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_oam_server_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      compute_oam_server_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_oam_server_port_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      port_oam_server_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_oam_server_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_oam_server_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_oam_server_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      compute_oam_server_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_oam_server_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
\ No newline at end of file
index d06e2b7..a8501fd 100644 (file)
@@ -122,29 +122,6 @@ topology_template:
             is_required: true
           floating_ip_count_required:
             is_required: false
-      requirements:
-      - dependency_cmaui_port_7:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_cmaui_port_7:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
-      - dependency_cmaui_port_8:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_cmaui_port_8:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
-      - dependency_server_cmaui:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_server_cmaui:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
     abstract_sm_server:
       type: org.openecomp.resource.abstract.nodes.sm_server
       directives:
index 20819de..65ff3a0 100644 (file)
@@ -5,6 +5,85 @@ imports:
 - openecomp_heat_index:
     file: openecomp-heat/_index.yml
 node_types:
+  org.openecomp.resource.vfc.nodes.heat.pd_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      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
+      compute_pd_server_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      compute_pd_server_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_pd01_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_pd01_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      compute_pd_server_user_data_format:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
   org.openecomp.resource.abstract.nodes.pd_server:
     derived_from: org.openecomp.resource.abstract.nodes.VFC
     properties:
@@ -1262,25 +1341,39 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
-  org.openecomp.resource.abstract.nodes.oam:
+  org.openecomp.resource.abstract.nodes.oam_1:
     derived_from: org.openecomp.resource.abstract.nodes.VFC
     properties:
-      port_oam02_port_network:
+      port_oam01_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_oam01_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_oam01_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_oam01_port_ip_requirements:
         type: list
         required: true
         status: SUPPORTED
         entry_schema:
-          type: string
-      port_oam02_port_ip_requirements:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_oam01_port_security_groups:
         type: list
         required: true
         status: SUPPORTED
         entry_schema:
-          type: org.openecomp.datatypes.network.IpRequirements
-      port_oam02_port_network_role:
-        type: string
+          type: json
+      port_oam01_port_network:
+        type: list
         required: true
         status: SUPPORTED
+        entry_schema:
+          type: string
       index_value:
         type: integer
         description: Index value of this substitution service template runtime instance
@@ -1289,79 +1382,65 @@ node_types:
         status: SUPPORTED
         constraints:
         - greater_or_equal: 0
-      port_oam02_port_fixed_ips:
+      port_oam01_port_replacement_policy:
         type: list
         required: true
         status: SUPPORTED
         entry_schema:
-          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+          type: string
       vm_flavor_name:
         type: string
         required: true
         status: SUPPORTED
-      port_oam02_port_exCP_naming:
-        type: org.openecomp.datatypes.Naming
-        required: true
-        status: SUPPORTED
-      port_oam02_port_security_groups:
-        type: list
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: json
-      port_oam02_port_subnetpoolid:
-        type: string
-        required: true
-        status: SUPPORTED
-      port_oam02_port_mac_requirements:
-        type: org.openecomp.datatypes.network.MacRequirements
-        required: true
-        status: SUPPORTED
-      port_oam02_port_order:
-        type: integer
-        required: true
-        status: SUPPORTED
       vm_image_name:
         type: string
         required: true
         status: SUPPORTED
-      port_oam02_port_network_role_tag:
+      port_oam01_port_network_role:
         type: string
         required: true
         status: SUPPORTED
-      port_oam02_port_replacement_policy:
+      port_oam01_port_fixed_ips:
         type: list
         required: true
         status: SUPPORTED
         entry_schema:
-          type: string
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      port_oam01_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
       compute_oam_availability_zone:
         type: list
         required: true
         status: SUPPORTED
         entry_schema:
           type: string
-      port_oam02_port_vlan_requirements:
-        type: list
+      port_oam01_port_network_role_tag:
+        type: string
         required: true
         status: SUPPORTED
-        entry_schema:
-          type: org.openecomp.datatypes.network.VlanRequirements
       compute_oam_name:
         type: list
         required: true
         status: SUPPORTED
         entry_schema:
           type: string
+      port_oam01_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
     requirements:
-    - dependency_oam_oam02_port:
+    - dependency_oam_oam01_port:
         capability: tosca.capabilities.Node
         node: tosca.nodes.Root
         relationship: tosca.relationships.DependsOn
         occurrences:
         - 0
         - UNBOUNDED
-    - link_oam_oam02_port:
+    - link_oam_oam01_port:
         capability: tosca.capabilities.network.Linkable
         relationship: tosca.relationships.network.LinksTo
         occurrences:
@@ -1388,61 +1467,60 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
-      network.incoming.bytes.rate_oam_oam02_port:
+      network.outgoing.packets.rate_oam_oam01_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.usage_oam:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      binding_oam_oam01_port:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
         occurrences:
-        - 1
+        - 0
         - UNBOUNDED
-      memory.resident_oam:
+      network.outgoing.bytes.rate_oam_oam01_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.bytes_oam:
+      disk.usage_oam:
         type: org.openecomp.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_oam_oam02_port:
+      memory.resident_oam:
         type: org.openecomp.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_oam:
+      disk.device.write.bytes_oam:
         type: org.openecomp.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_oam_oam02_port:
+      disk.read.bytes_oam:
         type: org.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_oam_oam02_port:
-        type: tosca.capabilities.network.Bindable
-        valid_source_types:
-        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-        occurrences:
-        - 0
-        - UNBOUNDED
       scalable_oam:
         type: tosca.capabilities.Scalable
         occurrences:
         - 1
         - UNBOUNDED
-      network.outgoing.bytes.rate_oam_oam02_port:
+      attachment_oam_oam01_port:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_oam_oam01_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:
@@ -1465,6 +1543,12 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
+      network.incoming.packets.rate_oam_oam01_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_oam:
         type: tosca.capabilities.network.Bindable
         occurrences:
@@ -1500,6 +1584,11 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
+      feature_oam_oam01_port:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
       disk.write.requests_oam:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
@@ -1518,7 +1607,7 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
-      network.outgoing.bytes_oam_oam02_port:
+      network.outpoing.packets_oam_oam01_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:
@@ -1530,31 +1619,31 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
-      network.incoming.packets.rate_oam_oam02_port:
+      memory_oam:
         type: org.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_oam:
+      cpu.delta_oam:
         type: org.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_oam:
+      disk.device.write.requests_oam:
         type: org.openecomp.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_oam:
+      disk.device.read.requests.rate_oam:
         type: org.openecomp.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_oam:
+      network.outgoing.bytes_oam_oam01_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:
@@ -1608,36 +1697,31 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.read.requests_oam:
+      network.incoming.bytes.rate_oam_oam01_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.iops_oam:
+      disk.device.read.requests_oam:
         type: org.openecomp.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_oam:
+      disk.iops_oam:
         type: org.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_oam_oam02_port:
-        type: tosca.capabilities.Node
-        occurrences:
-        - 1
-        - UNBOUNDED
-      cpu_util_oam:
+      disk.read.bytes.rate_oam:
         type: org.openecomp.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_oam_oam02_port:
+      cpu_util_oam:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
@@ -1660,83 +1744,84 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
-      network.incoming.bytes_oam_oam02_port:
+      disk.write.bytes_oam:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      attachment_oam_oam02_port:
-        type: tosca.capabilities.Attachment
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.write.bytes_oam:
+      disk.read.requests_oam:
         type: org.openecomp.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_oam:
+      disk.device.capacity_oam:
         type: org.openecomp.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_oam:
+      network.incoming.packets_oam_oam01_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
-  org.openecomp.resource.abstract.nodes.oam_1:
+  org.openecomp.resource.abstract.nodes.cmaui_1:
     derived_from: org.openecomp.resource.abstract.nodes.VFC
     properties:
-      port_oam01_port_mac_requirements:
-        type: org.openecomp.datatypes.network.MacRequirements
-        required: true
-        status: SUPPORTED
-      port_oam01_port_subnetpoolid:
+      port_cmaui01_port_network_role:
         type: string
         required: true
         status: SUPPORTED
-      port_oam01_port_order:
+      port_cmaui01_port_order:
         type: integer
         required: true
         status: SUPPORTED
-      port_oam01_port_ip_requirements:
+      port_cmaui01_port_replacement_policy:
         type: list
         required: true
         status: SUPPORTED
         entry_schema:
-          type: org.openecomp.datatypes.network.IpRequirements
-      port_oam01_port_security_groups:
+          type: string
+      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_cmaui01_port_security_groups:
         type: list
         required: true
         status: SUPPORTED
         entry_schema:
           type: json
-      port_oam01_port_network:
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      compute_cmaui_name:
         type: list
         required: true
         status: SUPPORTED
         entry_schema:
           type: string
-      index_value:
-        type: integer
-        description: Index value of this substitution service template runtime instance
-        required: false
-        default: 0
+      port_cmaui01_port_vlan_requirements:
+        type: list
+        required: true
         status: SUPPORTED
-        constraints:
-        - greater_or_equal: 0
-      port_oam01_port_replacement_policy:
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      compute_cmaui_availability_zone:
         type: list
         required: true
         status: SUPPORTED
         entry_schema:
           type: string
-      vm_flavor_name:
+      port_cmaui01_port_subnetpoolid:
         type: string
         required: true
         status: SUPPORTED
@@ -1744,64 +1829,58 @@ node_types:
         type: string
         required: true
         status: SUPPORTED
-      port_oam01_port_network_role:
+      port_cmaui01_port_network_role_tag:
         type: string
         required: true
         status: SUPPORTED
-      port_oam01_port_fixed_ips:
-        type: list
+      port_cmaui01_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
         required: true
         status: SUPPORTED
-        entry_schema:
-          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
-      port_oam01_port_exCP_naming:
-        type: org.openecomp.datatypes.Naming
+      port_cmaui01_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
         required: true
         status: SUPPORTED
-      compute_oam_availability_zone:
+      port_cmaui01_port_fixed_ips:
         type: list
         required: true
         status: SUPPORTED
         entry_schema:
-          type: string
-      port_oam01_port_network_role_tag:
-        type: string
-        required: true
-        status: SUPPORTED
-      compute_oam_name:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      port_cmaui01_port_network:
         type: list
         required: true
         status: SUPPORTED
         entry_schema:
           type: string
-      port_oam01_port_vlan_requirements:
+      port_cmaui01_port_ip_requirements:
         type: list
         required: true
         status: SUPPORTED
         entry_schema:
-          type: org.openecomp.datatypes.network.VlanRequirements
+          type: org.openecomp.datatypes.network.IpRequirements
     requirements:
-    - dependency_oam_oam01_port:
+    - dependency_cmaui_cmaui01_port:
         capability: tosca.capabilities.Node
         node: tosca.nodes.Root
         relationship: tosca.relationships.DependsOn
         occurrences:
         - 0
         - UNBOUNDED
-    - link_oam_oam01_port:
+    - link_cmaui_cmaui01_port:
         capability: tosca.capabilities.network.Linkable
         relationship: tosca.relationships.network.LinksTo
         occurrences:
         - 1
         - 1
-    - dependency_oam:
+    - dependency_cmaui:
         capability: tosca.capabilities.Node
         node: tosca.nodes.Root
         relationship: tosca.relationships.DependsOn
         occurrences:
         - 0
         - UNBOUNDED
-    - local_storage_oam:
+    - local_storage_cmaui:
         capability: tosca.capabilities.Attachment
         node: tosca.nodes.BlockStorage
         relationship: tosca.relationships.AttachesTo
@@ -1809,5173 +1888,5053 @@ node_types:
         - 0
         - UNBOUNDED
     capabilities:
-      cpu_oam:
+      disk.read.bytes.rate_cmaui:
         type: org.openecomp.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_oam_oam01_port:
+      disk.ephemeral.size_cmaui:
         type: org.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_oam_oam01_port:
-        type: tosca.capabilities.network.Bindable
-        valid_source_types:
-        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-        occurrences:
-        - 0
-        - UNBOUNDED
-      network.outgoing.bytes.rate_oam_oam01_port:
+      disk.device.write.bytes_cmaui:
         type: org.openecomp.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_oam:
+      network.outgoing.bytes_cmaui_cmaui01_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_oam:
+      network.incoming.packets.rate_cmaui_cmaui01_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.bytes_oam:
+      disk.device.iops_cmaui:
         type: org.openecomp.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_oam:
+      memory.resident_cmaui:
         type: org.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_oam:
-        type: tosca.capabilities.Scalable
+      disk.write.bytes.rate_cmaui:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      attachment_oam_oam01_port:
-        type: tosca.capabilities.Attachment
+      host_cmaui:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
         occurrences:
         - 1
         - UNBOUNDED
-      network.incoming.bytes_oam_oam01_port:
+      disk.device.allocation_cmaui:
         type: org.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_oam:
-        type: tosca.capabilities.Node
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.allocation_oam:
+      disk.read.bytes_cmaui:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.usage_oam:
+      disk.write.requests_cmaui:
         type: org.openecomp.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_oam_oam01_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      scalable_cmaui:
+        type: tosca.capabilities.Scalable
         occurrences:
         - 1
         - UNBOUNDED
-      binding_oam:
-        type: tosca.capabilities.network.Bindable
+      feature_cmaui_cmaui01_port:
+        type: tosca.capabilities.Node
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.read.bytes.rate_oam:
+      disk.device.write.bytes.rate_cmaui:
         type: org.openecomp.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_oam:
+      cpu.delta_cmaui:
         type: org.openecomp.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_oam:
+      disk.root.size_cmaui:
         type: org.openecomp.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_oam:
+      memory.usage_cmaui:
         type: org.openecomp.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_oam:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      os_cmaui:
+        type: tosca.capabilities.OperatingSystem
         occurrences:
         - 1
         - UNBOUNDED
-      feature_oam_oam01_port:
-        type: tosca.capabilities.Node
+      network.outgoing.bytes.rate_cmaui_cmaui01_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.requests_oam:
+      disk.device.read.bytes.rate_cmaui:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.capacity_oam:
+      network.incoming.bytes_cmaui_cmaui01_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_oam:
+      network.outgoing.packets.rate_cmaui_cmaui01_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_oam_oam01_port:
+      disk.device.usage_cmaui:
         type: org.openecomp.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_oam:
+      disk.iops_cmaui:
         type: org.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_oam:
+      disk.device.latency_cmaui:
         type: org.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_oam:
+      disk.device.read.requests_cmaui:
         type: org.openecomp.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_oam:
+      disk.capacity_cmaui:
         type: org.openecomp.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_oam:
+      cpu_cmaui:
         type: org.openecomp.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_oam_oam01_port:
+      network.outpoing.packets_cmaui_cmaui01_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.requests.rate_oam:
+      disk.read.requests_cmaui:
         type: org.openecomp.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_oam:
+      attachment_cmaui_cmaui01_port:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes_cmaui:
         type: org.openecomp.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_oam:
+      network.incoming.packets_cmaui_cmaui01_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
-      vcpus_oam:
+      disk.device.write.requests_cmaui:
         type: org.openecomp.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_oam:
+      network.incoming.bytes.rate_cmaui_cmaui01_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_oam:
+      vcpus_cmaui:
         type: org.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_oam:
-        type: tosca.capabilities.Container
+      binding_cmaui_cmaui01_port:
+        type: tosca.capabilities.network.Bindable
         valid_source_types:
-        - tosca.nodes.SoftwareComponent
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      feature_cmaui:
+        type: tosca.capabilities.Node
         occurrences:
         - 1
         - UNBOUNDED
-      endpoint_oam:
-        type: tosca.capabilities.Endpoint.Admin
+      binding_cmaui:
+        type: tosca.capabilities.network.Bindable
         occurrences:
         - 1
         - UNBOUNDED
-      network.incoming.bytes.rate_oam_oam01_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      endpoint_cmaui:
+        type: tosca.capabilities.Endpoint.Admin
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.read.requests_oam:
+      disk.device.capacity_cmaui:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.iops_oam:
+      disk.device.read.requests.rate_cmaui:
         type: org.openecomp.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_oam:
+      memory_cmaui:
         type: org.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_oam:
+      disk.write.requests.rate_cmaui:
         type: org.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_oam:
-        type: tosca.capabilities.OperatingSystem
+      disk.usage_cmaui:
+        type: org.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_oam:
+      disk.latency_cmaui:
         type: org.openecomp.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_oam:
+      instance_cmaui:
         type: org.openecomp.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_oam:
+      disk.allocation_cmaui:
         type: org.openecomp.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_oam:
+      disk.write.bytes_cmaui:
         type: org.openecomp.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_oam:
+      cpu_util_cmaui:
         type: org.openecomp.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_oam_oam01_port:
+      disk.device.write.requests.rate_cmaui:
         type: org.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.cmaui:
-    derived_from: org.openecomp.resource.abstract.nodes.VFC
+  org.openecomp.resource.abstract.nodes.heat.nested1:
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
     properties:
-      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_cmaui02_port_exCP_naming:
-        type: org.openecomp.datatypes.Naming
-        required: true
-        status: SUPPORTED
-      port_cmaui02_port_fixed_ips:
+      cmaui_names:
         type: list
+        description: CMAUI1, CMAUI2 server names
         required: true
         status: SUPPORTED
         entry_schema:
-          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
-      port_cmaui02_port_mac_requirements:
-        type: org.openecomp.datatypes.network.MacRequirements
+          type: string
+      p1:
+        type: string
+        description: UID of OAM network
         required: true
         status: SUPPORTED
-      vm_flavor_name:
+      p2:
         type: string
+        description: UID of OAM network
         required: true
         status: SUPPORTED
-      compute_cmaui_name:
-        type: list
+      cmaui_image:
+        type: string
+        description: Image for CMAUI server
         required: true
         status: SUPPORTED
-        entry_schema:
-          type: string
-      port_cmaui02_port_vlan_requirements:
-        type: list
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: org.openecomp.datatypes.network.VlanRequirements
-      compute_cmaui_availability_zone:
-        type: list
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      vm_image_name:
+      cmaui_flavor:
         type: string
+        description: Flavor for CMAUI server
         required: true
         status: SUPPORTED
-      port_cmaui02_port_ip_requirements:
-        type: list
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: org.openecomp.datatypes.network.IpRequirements
-      port_cmaui02_port_order:
-        type: integer
-        required: true
-        status: SUPPORTED
-      port_cmaui02_port_replacement_policy:
+      security_group_name:
         type: list
+        description: CMAUI1, CMAUI2 server names
         required: true
         status: SUPPORTED
         entry_schema:
           type: string
-      port_cmaui02_port_network_role:
+      availability_zone_0:
         type: string
+        description: availabilityzone name
         required: true
         status: SUPPORTED
-      port_cmaui02_port_security_groups:
-        type: list
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: json
-      port_cmaui02_port_subnetpoolid:
+      cmaui_oam_ips:
         type: string
         required: true
         status: SUPPORTED
-      port_cmaui02_port_network:
-        type: list
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      port_cmaui02_port_network_role_tag:
+      net:
         type: string
         required: true
         status: SUPPORTED
     requirements:
-    - dependency_cmaui_cmaui02_port:
+    - dependency_server_cmaui_2:
         capability: tosca.capabilities.Node
         node: tosca.nodes.Root
         relationship: tosca.relationships.DependsOn
         occurrences:
         - 0
         - UNBOUNDED
-    - link_cmaui_cmaui02_port:
-        capability: tosca.capabilities.network.Linkable
-        relationship: tosca.relationships.network.LinksTo
+    - local_storage_server_cmaui_2:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
         occurrences:
-        - 1
-        - 1
-    - dependency_cmaui:
+        - 0
+        - UNBOUNDED
+    - dependency_server_cmaui_1:
         capability: tosca.capabilities.Node
         node: tosca.nodes.Root
         relationship: tosca.relationships.DependsOn
         occurrences:
         - 0
         - UNBOUNDED
-    - local_storage_cmaui:
+    - local_storage_server_cmaui_1:
         capability: tosca.capabilities.Attachment
         node: tosca.nodes.BlockStorage
         relationship: tosca.relationships.AttachesTo
         occurrences:
         - 0
         - UNBOUNDED
-    capabilities:
-      network.incoming.bytes_cmaui_cmaui02_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+    - dependency_cmaui01_port_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
         occurrences:
-        - 1
+        - 0
         - UNBOUNDED
-      disk.read.bytes.rate_cmaui:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+    - link_cmaui01_port_1:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
         occurrences:
         - 1
+        - 1
+    - dependency_cmaui02_port_2:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
         - UNBOUNDED
-      disk.ephemeral.size_cmaui:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+    - link_cmaui02_port_2:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
         occurrences:
         - 1
+        - 1
+    - dependency_test_nested2Level:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
         - UNBOUNDED
-      disk.device.write.bytes_cmaui:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+    - dependency_oam01_port_1_test_nested2Level:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
         occurrences:
-        - 1
+        - 0
         - UNBOUNDED
-      disk.device.iops_cmaui:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+    - link_oam01_port_1_test_nested2Level:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
         occurrences:
         - 1
+        - 1
+    - dependency_oam02_port_2_test_nested2Level:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
         - UNBOUNDED
-      memory.resident_cmaui:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+    - link_oam02_port_2_test_nested2Level:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
         occurrences:
         - 1
+        - 1
+    - dependency_test_nested3Level_test_nested2Level:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
         - UNBOUNDED
-      disk.write.bytes.rate_cmaui:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+    - dependency_pd01_port_1_test_nested3Level_test_nested2Level:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
         occurrences:
-        - 1
+        - 0
         - UNBOUNDED
-      host_cmaui:
-        type: tosca.capabilities.Container
-        valid_source_types:
-        - tosca.nodes.SoftwareComponent
+    - link_pd01_port_1_test_nested3Level_test_nested2Level:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
         occurrences:
         - 1
+        - 1
+    - dependency_pd02_port_2_test_nested3Level_test_nested2Level:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
         - UNBOUNDED
-      disk.device.allocation_cmaui:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+    - link_pd02_port_2_test_nested3Level_test_nested2Level:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
         occurrences:
         - 1
+        - 1
+    - dependency_server_ps_2_test_nested3Level_test_nested2Level:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
         - UNBOUNDED
-      feature_cmaui_cmaui02_port:
-        type: tosca.capabilities.Node
+    - local_storage_server_ps_2_test_nested3Level_test_nested2Level:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
         occurrences:
-        - 1
+        - 0
         - UNBOUNDED
-      disk.read.bytes_cmaui:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+    - dependency_server_ps_1_test_nested3Level_test_nested2Level:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
         occurrences:
-        - 1
+        - 0
         - UNBOUNDED
-      disk.write.requests_cmaui:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+    - local_storage_server_ps_1_test_nested3Level_test_nested2Level:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
         occurrences:
-        - 1
+        - 0
         - UNBOUNDED
-      scalable_cmaui:
-        type: tosca.capabilities.Scalable
+    - dependency_server_oam_2_test_nested2Level:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
         occurrences:
-        - 1
+        - 0
         - UNBOUNDED
-      disk.device.write.bytes.rate_cmaui:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+    - local_storage_server_oam_2_test_nested2Level:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
         occurrences:
-        - 1
+        - 0
         - UNBOUNDED
-      cpu.delta_cmaui:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+    - dependency_server_oam_1_test_nested2Level:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
         occurrences:
-        - 1
+        - 0
         - UNBOUNDED
-      disk.root.size_cmaui:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+    - local_storage_server_oam_1_test_nested2Level:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
         occurrences:
-        - 1
+        - 0
         - UNBOUNDED
-      memory.usage_cmaui:
+    capabilities:
+      memory.resident_server_ps_1_test_nested3Level_test_nested2Level:
         type: org.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_cmaui:
-        type: tosca.capabilities.OperatingSystem
+      disk.device.write.requests_server_oam_2_test_nested2Level:
+        type: org.openecomp.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_cmaui:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      feature_pd01_port_1_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.Node
         occurrences:
         - 1
         - UNBOUNDED
-      network.incoming.packets.rate_cmaui_cmaui02_port:
+      network.outgoing.packets.rate_cmaui02_port_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      binding_cmaui_cmaui02_port:
+      binding_cmaui02_port_2:
         type: tosca.capabilities.network.Bindable
         valid_source_types:
         - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
         occurrences:
         - 0
         - UNBOUNDED
-      disk.device.usage_cmaui:
+      disk.device.latency_server_cmaui_1:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.iops_cmaui:
+      network.outgoing.bytes.rate_cmaui02_port_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.latency_cmaui:
+      disk.device.latency_server_cmaui_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.read.requests_cmaui:
+      disk.device.read.bytes_server_ps_2_test_nested3Level_test_nested2Level:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.capacity_cmaui:
+      cpu.delta_server_oam_1_test_nested2Level:
         type: org.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_cmaui:
+      disk.root.size_server_cmaui_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      network.outgoing.packets.rate_cmaui_cmaui02_port:
+      disk.root.size_server_cmaui_1:
         type: org.openecomp.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_cmaui:
+      disk.device.latency_server_ps_1_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_cmaui:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      attachment_cmaui01_port_1:
+        type: tosca.capabilities.Attachment
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.write.requests_cmaui:
+      disk.write.bytes_server_ps_1_test_nested3Level_test_nested2Level:
         type: org.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_cmaui:
+      network.incoming.bytes.rate_cmaui01_port_1:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      feature_cmaui:
-        type: tosca.capabilities.Node
+      disk.capacity_server_oam_1_test_nested2Level:
+        type: org.openecomp.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_cmaui_cmaui02_port:
+      disk.read.requests_server_cmaui_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      binding_cmaui:
-        type: tosca.capabilities.network.Bindable
+      disk.read.requests_server_cmaui_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      attachment_cmaui_cmaui02_port:
-        type: tosca.capabilities.Attachment
+      memory.resident_server_oam_1_test_nested2Level:
+        type: org.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_cmaui:
-        type: tosca.capabilities.Endpoint.Admin
+      binding_server_ps_1_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.network.Bindable
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.capacity_cmaui:
+      memory.usage_server_oam_1_test_nested2Level:
         type: org.openecomp.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_cmaui:
+      network.incoming.bytes_pd01_port_1_test_nested3Level_test_nested2Level:
         type: org.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_cmaui:
+      disk.root.size_server_ps_1_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_cmaui:
+      cpu.delta_server_oam_2_test_nested2Level:
         type: org.openecomp.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_cmaui_cmaui02_port:
+      disk.device.read.bytes.rate_server_cmaui_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.usage_cmaui:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      feature_cmaui02_port_2:
+        type: tosca.capabilities.Node
         occurrences:
         - 1
         - UNBOUNDED
-      disk.latency_cmaui:
+      disk.device.read.bytes.rate_server_cmaui_1:
         type: org.openecomp.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_cmaui_cmaui02_port:
+      disk.read.bytes_server_cmaui_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      instance_cmaui:
+      disk.read.bytes_server_cmaui_1:
         type: org.openecomp.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_cmaui:
+      network.outgoing.packets.rate_oam02_port_2_test_nested2Level:
         type: org.openecomp.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_cmaui_cmaui02_port:
+      disk.device.read.bytes_server_cmaui_1:
         type: org.openecomp.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_cmaui:
+      disk.device.read.bytes_server_cmaui_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      cpu_util_cmaui:
+      disk.write.bytes_server_ps_2_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_cmaui_cmaui02_port:
+      disk.device.write.requests_server_ps_2_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_cmaui:
+      memory.resident_server_oam_2_test_nested2Level:
         type: org.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.cmaui_1:
-    derived_from: org.openecomp.resource.abstract.nodes.VFC
-    properties:
-      port_cmaui01_port_network_role:
-        type: string
-        required: true
-        status: SUPPORTED
-      port_cmaui01_port_order:
-        type: integer
-        required: true
-        status: SUPPORTED
-      port_cmaui01_port_replacement_policy:
-        type: list
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      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_cmaui01_port_security_groups:
-        type: list
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: json
-      vm_flavor_name:
-        type: string
-        required: true
-        status: SUPPORTED
-      compute_cmaui_name:
-        type: list
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      port_cmaui01_port_vlan_requirements:
-        type: list
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: org.openecomp.datatypes.network.VlanRequirements
-      compute_cmaui_availability_zone:
-        type: list
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      port_cmaui01_port_subnetpoolid:
-        type: string
-        required: true
-        status: SUPPORTED
-      vm_image_name:
-        type: string
-        required: true
-        status: SUPPORTED
-      port_cmaui01_port_network_role_tag:
-        type: string
-        required: true
-        status: SUPPORTED
-      port_cmaui01_port_exCP_naming:
-        type: org.openecomp.datatypes.Naming
-        required: true
-        status: SUPPORTED
-      port_cmaui01_port_mac_requirements:
-        type: org.openecomp.datatypes.network.MacRequirements
-        required: true
-        status: SUPPORTED
-      port_cmaui01_port_fixed_ips:
-        type: list
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
-      port_cmaui01_port_network:
-        type: list
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      port_cmaui01_port_ip_requirements:
-        type: list
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: org.openecomp.datatypes.network.IpRequirements
-    requirements:
-    - dependency_cmaui_cmaui01_port:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - link_cmaui_cmaui01_port:
-        capability: tosca.capabilities.network.Linkable
-        relationship: tosca.relationships.network.LinksTo
-        occurrences:
-        - 1
-        - 1
-    - dependency_cmaui:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - local_storage_cmaui:
-        capability: tosca.capabilities.Attachment
-        node: tosca.nodes.BlockStorage
-        relationship: tosca.relationships.AttachesTo
-        occurrences:
-        - 0
-        - UNBOUNDED
-    capabilities:
-      disk.read.bytes.rate_cmaui:
+      disk.write.requests.rate_server_cmaui_1:
         type: org.openecomp.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_cmaui:
+      disk.write.requests.rate_server_cmaui_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.write.bytes_cmaui:
+      disk.iops_server_oam_2_test_nested2Level:
         type: org.openecomp.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_cmaui_cmaui01_port:
+      network.outpoing.packets_cmaui02_port_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      network.incoming.packets.rate_cmaui_cmaui01_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      attachment_pd01_port_1_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.Attachment
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.iops_cmaui:
+      disk.device.latency_server_ps_2_test_nested3Level_test_nested2Level:
         type: org.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_cmaui:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      binding_oam02_port_2_test_nested2Level:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
         occurrences:
-        - 1
+        - 0
         - UNBOUNDED
-      disk.write.bytes.rate_cmaui:
+      disk.write.requests_server_oam_2_test_nested2Level:
         type: org.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_cmaui:
-        type: tosca.capabilities.Container
-        valid_source_types:
-        - tosca.nodes.SoftwareComponent
+      endpoint_server_ps_2_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.Endpoint.Admin
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.allocation_cmaui:
+      disk.ephemeral.size_server_cmaui_1:
         type: org.openecomp.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_cmaui:
+      disk.ephemeral.size_server_cmaui_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.write.requests_cmaui:
+      cpu_util_server_ps_2_test_nested3Level_test_nested2Level:
         type: org.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_cmaui:
-        type: tosca.capabilities.Scalable
+      network.outgoing.bytes_cmaui02_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      feature_cmaui_cmaui01_port:
+      feature_server_ps_1_test_nested3Level_test_nested2Level:
         type: tosca.capabilities.Node
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.write.bytes.rate_cmaui:
+      disk.write.requests.rate_server_ps_2_test_nested3Level_test_nested2Level:
         type: org.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_cmaui:
+      disk.device.capacity_server_oam_1_test_nested2Level:
         type: org.openecomp.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_cmaui:
+      disk.ephemeral.size_server_ps_2_test_nested3Level_test_nested2Level:
         type: org.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_cmaui:
+      network.incoming.bytes.rate_oam02_port_2_test_nested2Level:
         type: org.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_cmaui:
-        type: tosca.capabilities.OperatingSystem
+      disk.device.read.requests.rate_server_oam_2_test_nested2Level:
+        type: org.openecomp.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_cmaui_cmaui01_port:
+      disk.read.bytes_server_oam_1_test_nested2Level:
         type: org.openecomp.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_cmaui:
+      network.outpoing.packets_oam01_port_1_test_nested2Level:
         type: org.openecomp.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_cmaui_cmaui01_port:
+      disk.device.write.bytes.rate_server_ps_2_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_cmaui_cmaui01_port:
+      network.outgoing.bytes.rate_oam02_port_2_test_nested2Level:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.usage_cmaui:
+      disk.read.bytes_server_ps_2_test_nested3Level_test_nested2Level:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.iops_cmaui:
+      feature_test_nested2Level:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_pd01_port_1_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      attachment_oam02_port_2_test_nested2Level:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests_server_cmaui_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.latency_cmaui:
+      cpu_util_server_ps_1_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_cmaui:
+      disk.device.write.requests_server_cmaui_1:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.capacity_cmaui:
+      disk.device.write.requests_server_oam_1_test_nested2Level:
         type: org.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_cmaui:
+      disk.device.write.bytes.rate_server_oam_2_test_nested2Level:
         type: org.openecomp.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_cmaui_cmaui01_port:
+      network.outgoing.bytes_pd02_port_2_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_cmaui:
+      disk.capacity_server_oam_2_test_nested2Level:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      attachment_cmaui_cmaui01_port:
-        type: tosca.capabilities.Attachment
+      disk.device.write.bytes.rate_server_cmaui_1:
+        type: org.openecomp.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_cmaui:
+      disk.ephemeral.size_server_ps_1_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_cmaui_cmaui01_port:
+      network.incoming.packets.rate_pd02_port_2_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_cmaui:
+      cpu_util_server_cmaui_1:
         type: org.openecomp.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_cmaui_cmaui01_port:
+      disk.device.read.requests_server_oam_1_test_nested2Level:
         type: org.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_cmaui:
+      disk.device.write.bytes_server_oam_2_test_nested2Level:
         type: org.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_cmaui_cmaui01_port:
-        type: tosca.capabilities.network.Bindable
-        valid_source_types:
-        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+      disk.device.write.requests.rate_server_oam_2_test_nested2Level:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
-        - 0
+        - 1
         - UNBOUNDED
-      feature_cmaui:
-        type: tosca.capabilities.Node
+      cpu_server_oam_2_test_nested2Level:
+        type: org.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_cmaui:
-        type: tosca.capabilities.network.Bindable
+      disk.device.read.bytes_server_ps_1_test_nested3Level_test_nested2Level:
+        type: org.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_cmaui:
-        type: tosca.capabilities.Endpoint.Admin
+      disk.root.size_server_ps_2_test_nested3Level_test_nested2Level:
+        type: org.openecomp.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_cmaui:
+      disk.write.requests.rate_server_ps_1_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_cmaui:
+      cpu_util_server_cmaui_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      memory_cmaui:
+      network.incoming.packets_cmaui02_port_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.write.requests.rate_cmaui:
+      disk.device.write.bytes.rate_server_cmaui_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.usage_cmaui:
+      disk.device.usage_server_oam_1_test_nested2Level:
         type: org.openecomp.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_cmaui:
+      disk.write.bytes.rate_server_cmaui_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      instance_cmaui:
+      cpu_util_server_oam_1_test_nested2Level:
         type: org.openecomp.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_cmaui:
+      disk.device.write.bytes_server_cmaui_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.write.bytes_cmaui:
+      disk.write.bytes.rate_server_cmaui_1:
         type: org.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_cmaui:
+      attachment_oam01_port_1_test_nested2Level:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes_server_cmaui_1:
         type: org.openecomp.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_cmaui:
+      disk.write.bytes_server_oam_2_test_nested2Level:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-  org.openecomp.resource.abstract.nodes.heat.nested1:
-    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
-    properties:
-      cmaui_names:
-        type: list
-        description: CMAUI1, CMAUI2 server names
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      p1:
-        type: string
-        description: UID of OAM network
-        required: true
-        status: SUPPORTED
-      p2:
-        type: string
-        description: UID of OAM network
-        required: true
-        status: SUPPORTED
-      cmaui_image:
-        type: string
-        description: Image for CMAUI server
-        required: true
-        status: SUPPORTED
-      cmaui_flavor:
-        type: string
-        description: Flavor for CMAUI server
-        required: true
-        status: SUPPORTED
-      security_group_name:
-        type: list
-        description: CMAUI1, CMAUI2 server names
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      availability_zone_0:
-        type: string
-        description: availabilityzone name
-        required: true
-        status: SUPPORTED
-      cmaui_oam_ips:
-        type: string
-        required: true
-        status: SUPPORTED
-      net:
-        type: string
-        required: true
-        status: SUPPORTED
-    requirements:
-    - dependency_server_cmaui_2:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
+      os_server_ps_2_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.OperatingSystem
         occurrences:
-        - 0
+        - 1
         - UNBOUNDED
-    - local_storage_server_cmaui_2:
-        capability: tosca.capabilities.Attachment
-        node: tosca.nodes.BlockStorage
-        relationship: tosca.relationships.AttachesTo
+      disk.allocation_server_ps_2_test_nested3Level_test_nested2Level:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
-        - 0
+        - 1
         - UNBOUNDED
-    - dependency_server_cmaui_1:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
+      cpu.delta_server_ps_1_test_nested3Level_test_nested2Level:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
-        - 0
+        - 1
         - UNBOUNDED
-    - local_storage_server_cmaui_1:
-        capability: tosca.capabilities.Attachment
-        node: tosca.nodes.BlockStorage
-        relationship: tosca.relationships.AttachesTo
+      network.incoming.bytes_pd02_port_2_test_nested3Level_test_nested2Level:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
-        - 0
+        - 1
         - UNBOUNDED
-    - dependency_cmaui01_port_1:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
+      binding_server_cmaui_1:
+        type: tosca.capabilities.network.Bindable
         occurrences:
-        - 0
+        - 1
         - UNBOUNDED
-    - link_cmaui01_port_1:
-        capability: tosca.capabilities.network.Linkable
-        relationship: tosca.relationships.network.LinksTo
+      disk.device.usage_server_oam_2_test_nested2Level:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
-        - 1
-    - dependency_cmaui02_port_2:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
         - UNBOUNDED
-    - link_cmaui02_port_2:
-        capability: tosca.capabilities.network.Linkable
-        relationship: tosca.relationships.network.LinksTo
+      binding_server_cmaui_2:
+        type: tosca.capabilities.network.Bindable
         occurrences:
         - 1
-        - 1
-    - dependency_test_nested2Level:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
         - UNBOUNDED
-    - dependency_oam01_port_1_test_nested2Level:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
+      disk.allocation_server_oam_1_test_nested2Level:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
-        - 0
+        - 1
         - UNBOUNDED
-    - link_oam01_port_1_test_nested2Level:
-        capability: tosca.capabilities.network.Linkable
-        relationship: tosca.relationships.network.LinksTo
+      scalable_server_cmaui_2:
+        type: tosca.capabilities.Scalable
         occurrences:
         - 1
-        - 1
-    - dependency_oam02_port_2_test_nested2Level:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
         - UNBOUNDED
-    - link_oam02_port_2_test_nested2Level:
-        capability: tosca.capabilities.network.Linkable
-        relationship: tosca.relationships.network.LinksTo
+      scalable_server_cmaui_1:
+        type: tosca.capabilities.Scalable
         occurrences:
         - 1
-        - 1
-    - dependency_test_nested3Level_test_nested2Level:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
+        - UNBOUNDED
+      disk.device.usage_server_ps_2_test_nested3Level_test_nested2Level:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
-        - 0
+        - 1
         - UNBOUNDED
-    - dependency_pd01_port_1_test_nested3Level_test_nested2Level:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - link_pd01_port_1_test_nested3Level_test_nested2Level:
-        capability: tosca.capabilities.network.Linkable
-        relationship: tosca.relationships.network.LinksTo
+      network.incoming.bytes_cmaui01_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
-        - 1
-    - dependency_pd02_port_2_test_nested3Level_test_nested2Level:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
         - UNBOUNDED
-    - link_pd02_port_2_test_nested3Level_test_nested2Level:
-        capability: tosca.capabilities.network.Linkable
-        relationship: tosca.relationships.network.LinksTo
+      instance_server_oam_2_test_nested2Level:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
-        - 1
-    - dependency_server_ps_2_test_nested3Level_test_nested2Level:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - local_storage_server_ps_2_test_nested3Level_test_nested2Level:
-        capability: tosca.capabilities.Attachment
-        node: tosca.nodes.BlockStorage
-        relationship: tosca.relationships.AttachesTo
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - dependency_server_ps_1_test_nested3Level_test_nested2Level:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - local_storage_server_ps_1_test_nested3Level_test_nested2Level:
-        capability: tosca.capabilities.Attachment
-        node: tosca.nodes.BlockStorage
-        relationship: tosca.relationships.AttachesTo
-        occurrences:
-        - 0
         - UNBOUNDED
-    - dependency_server_oam_2_test_nested2Level:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
+      endpoint_server_ps_1_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.Endpoint.Admin
         occurrences:
-        - 0
+        - 1
         - UNBOUNDED
-    - local_storage_server_oam_2_test_nested2Level:
-        capability: tosca.capabilities.Attachment
-        node: tosca.nodes.BlockStorage
-        relationship: tosca.relationships.AttachesTo
+      network.incoming.packets_oam02_port_2_test_nested2Level:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
-        - 0
+        - 1
         - UNBOUNDED
-    - dependency_server_oam_1_test_nested2Level:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
+      endpoint_server_cmaui_1:
+        type: tosca.capabilities.Endpoint.Admin
         occurrences:
-        - 0
+        - 1
         - UNBOUNDED
-    - local_storage_server_oam_1_test_nested2Level:
-        capability: tosca.capabilities.Attachment
-        node: tosca.nodes.BlockStorage
-        relationship: tosca.relationships.AttachesTo
+      endpoint_server_cmaui_2:
+        type: tosca.capabilities.Endpoint.Admin
         occurrences:
-        - 0
+        - 1
         - UNBOUNDED
-    capabilities:
-      memory.resident_server_ps_1_test_nested3Level_test_nested2Level:
+      network.outpoing.packets_oam02_port_2_test_nested2Level:
         type: org.openecomp.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_server_oam_2_test_nested2Level:
+      disk.device.latency_server_oam_1_test_nested2Level:
         type: org.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_pd01_port_1_test_nested3Level_test_nested2Level:
+      feature_oam02_port_2_test_nested2Level:
         type: tosca.capabilities.Node
         occurrences:
         - 1
         - UNBOUNDED
-      network.outgoing.packets.rate_cmaui02_port_2:
+      disk.device.allocation_server_ps_1_test_nested3Level_test_nested2Level:
         type: org.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_cmaui02_port_2:
-        type: tosca.capabilities.network.Bindable
-        valid_source_types:
-        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-        occurrences:
-        - 0
-        - UNBOUNDED
-      disk.device.latency_server_cmaui_1:
+      memory.usage_server_ps_1_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_cmaui02_port_2:
+      network.incoming.packets_pd02_port_2_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_server_cmaui_2:
+      disk.device.read.requests_server_ps_2_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_server_ps_2_test_nested3Level_test_nested2Level:
+      disk.device.capacity_server_oam_2_test_nested2Level:
         type: org.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_server_oam_1_test_nested2Level:
+      disk.read.requests_server_oam_1_test_nested2Level:
         type: org.openecomp.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_server_cmaui_2:
+      disk.device.read.bytes.rate_server_ps_1_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_server_cmaui_1:
+      disk.allocation_server_oam_2_test_nested2Level:
         type: org.openecomp.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_server_ps_1_test_nested3Level_test_nested2Level:
+      os_server_oam_2_test_nested2Level:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.iops_server_ps_1_test_nested3Level_test_nested2Level:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      attachment_cmaui01_port_1:
-        type: tosca.capabilities.Attachment
+      disk.device.allocation_server_cmaui_1:
+        type: org.openecomp.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_server_ps_1_test_nested3Level_test_nested2Level:
+      disk.device.allocation_server_cmaui_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      network.incoming.bytes.rate_cmaui01_port_1:
+      vcpus_server_oam_1_test_nested2Level:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.capacity_server_oam_1_test_nested2Level:
+      network.incoming.packets_oam01_port_1_test_nested2Level:
         type: org.openecomp.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_server_cmaui_2:
+      disk.device.write.bytes_server_ps_2_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_server_cmaui_1:
+      memory_server_cmaui_1:
         type: org.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_server_oam_1_test_nested2Level:
+      network.outgoing.bytes.rate_pd01_port_1_test_nested3Level_test_nested2Level:
         type: org.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_server_ps_1_test_nested3Level_test_nested2Level:
+      binding_server_ps_2_test_nested3Level_test_nested2Level:
         type: tosca.capabilities.network.Bindable
         occurrences:
         - 1
         - UNBOUNDED
-      memory.usage_server_oam_1_test_nested2Level:
+      memory.usage_server_oam_2_test_nested2Level:
         type: org.openecomp.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_pd01_port_1_test_nested3Level_test_nested2Level:
+      disk.iops_server_oam_1_test_nested2Level:
         type: org.openecomp.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_server_ps_1_test_nested3Level_test_nested2Level:
+      disk.usage_server_ps_2_test_nested3Level_test_nested2Level:
         type: org.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_server_oam_2_test_nested2Level:
+      network.outgoing.bytes_pd01_port_1_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_server_cmaui_2:
+      disk.capacity_server_ps_1_test_nested3Level_test_nested2Level:
         type: org.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_cmaui02_port_2:
-        type: tosca.capabilities.Node
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.read.bytes.rate_server_cmaui_1:
+      disk.latency_server_oam_1_test_nested2Level:
         type: org.openecomp.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_server_cmaui_2:
+      vcpus_server_ps_2_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_server_cmaui_1:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      feature_oam01_port_1_test_nested2Level:
+        type: tosca.capabilities.Node
         occurrences:
         - 1
         - UNBOUNDED
-      network.outgoing.packets.rate_oam02_port_2_test_nested2Level:
+      network.outgoing.bytes_cmaui01_port_1:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.read.bytes_server_cmaui_1:
+      instance_server_cmaui_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.read.bytes_server_cmaui_2:
+      disk.device.capacity_server_cmaui_1:
         type: org.openecomp.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_server_ps_2_test_nested3Level_test_nested2Level:
+      memory.resident_server_ps_2_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_server_ps_2_test_nested3Level_test_nested2Level:
+      network.incoming.packets.rate_cmaui01_port_1:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      memory.resident_server_oam_2_test_nested2Level:
+      disk.read.requests_server_ps_1_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_server_cmaui_1:
+      instance_server_cmaui_1:
         type: org.openecomp.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_server_cmaui_2:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      host_server_ps_1_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
         occurrences:
         - 1
         - UNBOUNDED
-      disk.iops_server_oam_2_test_nested2Level:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      scalable_server_oam_1_test_nested2Level:
+        type: tosca.capabilities.Scalable
         occurrences:
         - 1
         - UNBOUNDED
-      network.outpoing.packets_cmaui02_port_2:
+      network.incoming.packets.rate_pd01_port_1_test_nested3Level_test_nested2Level:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      attachment_pd01_port_1_test_nested3Level_test_nested2Level:
-        type: tosca.capabilities.Attachment
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.latency_server_ps_2_test_nested3Level_test_nested2Level:
+      disk.write.requests_server_ps_2_test_nested3Level_test_nested2Level:
         type: org.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_oam02_port_2_test_nested2Level:
-        type: tosca.capabilities.network.Bindable
-        valid_source_types:
-        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-        occurrences:
-        - 0
-        - UNBOUNDED
-      disk.write.requests_server_oam_2_test_nested2Level:
+      cpu_server_ps_1_test_nested3Level_test_nested2Level:
         type: org.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_server_ps_2_test_nested3Level_test_nested2Level:
-        type: tosca.capabilities.Endpoint.Admin
+      disk.device.read.requests_server_cmaui_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.ephemeral.size_server_cmaui_1:
+      disk.device.read.requests_server_cmaui_1:
         type: org.openecomp.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_server_cmaui_2:
+      cpu.delta_server_cmaui_1:
         type: org.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_server_ps_2_test_nested3Level_test_nested2Level:
+      disk.device.write.bytes_server_oam_1_test_nested2Level:
         type: org.openecomp.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_cmaui02_port_2:
+      cpu.delta_server_cmaui_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      feature_server_ps_1_test_nested3Level_test_nested2Level:
-        type: tosca.capabilities.Node
+      cpu_server_oam_1_test_nested2Level:
+        type: org.openecomp.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_server_ps_2_test_nested3Level_test_nested2Level:
+      disk.device.write.bytes.rate_server_oam_1_test_nested2Level:
         type: org.openecomp.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_server_oam_1_test_nested2Level:
+      disk.device.read.bytes_server_oam_2_test_nested2Level:
         type: org.openecomp.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_server_ps_2_test_nested3Level_test_nested2Level:
+      disk.usage_server_oam_1_test_nested2Level:
         type: org.openecomp.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_oam02_port_2_test_nested2Level:
+      binding_pd02_port_2_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.device.read.bytes.rate_server_oam_2_test_nested2Level:
         type: org.openecomp.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_server_oam_2_test_nested2Level:
+      network.outpoing.packets_pd01_port_1_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_server_oam_1_test_nested2Level:
+      disk.write.bytes.rate_server_ps_2_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_oam01_port_1_test_nested2Level:
+      disk.device.allocation_server_oam_2_test_nested2Level:
         type: org.openecomp.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_server_ps_2_test_nested3Level_test_nested2Level:
+      disk.device.usage_server_cmaui_1:
         type: org.openecomp.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_oam02_port_2_test_nested2Level:
+      disk.device.usage_server_cmaui_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.read.bytes_server_ps_2_test_nested3Level_test_nested2Level:
+      network.outgoing.packets.rate_cmaui01_port_1:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      feature_test_nested2Level:
-        type: tosca.capabilities.Node
-        occurrences:
-        - 1
-        - UNBOUNDED
-      binding_pd01_port_1_test_nested3Level_test_nested2Level:
+      binding_cmaui01_port_1:
         type: tosca.capabilities.network.Bindable
         valid_source_types:
         - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
         occurrences:
         - 0
         - UNBOUNDED
-      attachment_oam02_port_2_test_nested2Level:
-        type: tosca.capabilities.Attachment
+      scalable_server_oam_2_test_nested2Level:
+        type: tosca.capabilities.Scalable
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.write.requests_server_cmaui_2:
+      disk.capacity_server_ps_2_test_nested3Level_test_nested2Level:
         type: org.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_server_ps_1_test_nested3Level_test_nested2Level:
+      network.incoming.packets_pd01_port_1_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_server_cmaui_1:
+      disk.device.write.requests.rate_server_ps_2_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_server_oam_1_test_nested2Level:
+      network.outgoing.bytes.rate_cmaui01_port_1:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.write.bytes.rate_server_oam_2_test_nested2Level:
+      memory_server_ps_2_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_pd02_port_2_test_nested3Level_test_nested2Level:
+      disk.read.bytes.rate_server_oam_1_test_nested2Level:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.capacity_server_oam_2_test_nested2Level:
+      disk.device.capacity_server_ps_2_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_server_cmaui_1:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      scalable_server_ps_1_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.Scalable
         occurrences:
         - 1
         - UNBOUNDED
-      disk.ephemeral.size_server_ps_1_test_nested3Level_test_nested2Level:
+      disk.device.write.requests.rate_server_cmaui_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      network.incoming.packets.rate_pd02_port_2_test_nested3Level_test_nested2Level:
+      disk.device.write.requests.rate_server_cmaui_1:
         type: org.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_server_cmaui_1:
+      disk.device.allocation_server_oam_1_test_nested2Level:
         type: org.openecomp.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_server_oam_1_test_nested2Level:
+      network.incoming.bytes.rate_cmaui02_port_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.write.bytes_server_oam_2_test_nested2Level:
+      endpoint_server_oam_2_test_nested2Level:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_pd02_port_2_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_server_oam_2_test_nested2Level:
+      disk.latency_server_ps_2_test_nested3Level_test_nested2Level:
         type: org.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_server_oam_2_test_nested2Level:
+      disk.iops_server_ps_2_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_server_ps_1_test_nested3Level_test_nested2Level:
+      attachment_cmaui02_port_2:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes.rate_server_oam_2_test_nested2Level:
         type: org.openecomp.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_server_ps_2_test_nested3Level_test_nested2Level:
+      disk.latency_server_ps_1_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_server_ps_1_test_nested3Level_test_nested2Level:
+      disk.device.iops_server_cmaui_1:
         type: org.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_server_cmaui_2:
+      disk.device.iops_server_cmaui_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      network.incoming.packets_cmaui02_port_2:
+      disk.device.capacity_server_cmaui_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.write.bytes.rate_server_cmaui_2:
+      feature_server_oam_1_test_nested2Level:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      scalable_server_ps_2_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.usage_server_ps_1_test_nested3Level_test_nested2Level:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.usage_server_oam_1_test_nested2Level:
+      memory_server_cmaui_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.write.bytes.rate_server_cmaui_2:
+      cpu_server_cmaui_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      cpu_util_server_oam_1_test_nested2Level:
+      cpu_server_cmaui_1:
         type: org.openecomp.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_server_cmaui_2:
+      disk.read.bytes.rate_server_ps_2_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_server_cmaui_1:
+      disk.usage_server_oam_2_test_nested2Level:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      attachment_oam01_port_1_test_nested2Level:
-        type: tosca.capabilities.Attachment
+      binding_server_oam_1_test_nested2Level:
+        type: tosca.capabilities.network.Bindable
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.write.bytes_server_cmaui_1:
+      disk.device.read.requests.rate_server_ps_2_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_server_oam_2_test_nested2Level:
+      disk.capacity_server_cmaui_1:
         type: org.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_server_ps_2_test_nested3Level_test_nested2Level:
-        type: tosca.capabilities.OperatingSystem
+      network.outpoing.packets_pd02_port_2_test_nested3Level_test_nested2Level:
+        type: org.openecomp.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_server_ps_2_test_nested3Level_test_nested2Level:
+      disk.read.requests_server_oam_2_test_nested2Level:
         type: org.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_server_ps_1_test_nested3Level_test_nested2Level:
+      disk.capacity_server_cmaui_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      network.incoming.bytes_pd02_port_2_test_nested3Level_test_nested2Level:
+      disk.device.iops_server_oam_2_test_nested2Level:
         type: org.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_server_cmaui_1:
-        type: tosca.capabilities.network.Bindable
+      instance_server_ps_2_test_nested3Level_test_nested2Level:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.usage_server_oam_2_test_nested2Level:
+      disk.write.bytes.rate_server_ps_1_test_nested3Level_test_nested2Level:
         type: org.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_server_cmaui_2:
-        type: tosca.capabilities.network.Bindable
+      host_server_oam_2_test_nested2Level:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
         occurrences:
         - 1
         - UNBOUNDED
-      disk.allocation_server_oam_1_test_nested2Level:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      feature_server_oam_2_test_nested2Level:
+        type: tosca.capabilities.Node
         occurrences:
         - 1
         - UNBOUNDED
-      scalable_server_cmaui_2:
-        type: tosca.capabilities.Scalable
+      disk.allocation_server_ps_1_test_nested3Level_test_nested2Level:
+        type: org.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_server_cmaui_1:
-        type: tosca.capabilities.Scalable
+      disk.iops_server_cmaui_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.usage_server_ps_2_test_nested3Level_test_nested2Level:
+      memory_server_ps_1_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_cmaui01_port_1:
+      disk.iops_server_cmaui_1:
         type: org.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_server_oam_2_test_nested2Level:
+      disk.root.size_server_oam_1_test_nested2Level:
         type: org.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_server_ps_1_test_nested3Level_test_nested2Level:
-        type: tosca.capabilities.Endpoint.Admin
+      disk.read.bytes.rate_server_oam_2_test_nested2Level:
+        type: org.openecomp.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_oam02_port_2_test_nested2Level:
+      disk.device.capacity_server_ps_1_test_nested3Level_test_nested2Level:
         type: org.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_server_cmaui_1:
-        type: tosca.capabilities.Endpoint.Admin
+      feature_cmaui01_port_1:
+        type: tosca.capabilities.Node
         occurrences:
         - 1
         - UNBOUNDED
-      endpoint_server_cmaui_2:
-        type: tosca.capabilities.Endpoint.Admin
+      disk.device.read.requests.rate_server_ps_1_test_nested3Level_test_nested2Level:
+        type: org.openecomp.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_oam02_port_2_test_nested2Level:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      endpoint_server_oam_1_test_nested2Level:
+        type: tosca.capabilities.Endpoint.Admin
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.latency_server_oam_1_test_nested2Level:
+      disk.device.read.bytes.rate_server_oam_1_test_nested2Level:
         type: org.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_oam02_port_2_test_nested2Level:
-        type: tosca.capabilities.Node
+      network.incoming.packets.rate_oam02_port_2_test_nested2Level:
+        type: org.openecomp.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_server_ps_1_test_nested3Level_test_nested2Level:
+      disk.write.requests.rate_server_oam_2_test_nested2Level:
         type: org.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_server_ps_1_test_nested3Level_test_nested2Level:
+      disk.device.read.bytes_server_oam_1_test_nested2Level:
         type: org.openecomp.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_pd02_port_2_test_nested3Level_test_nested2Level:
+      network.outgoing.packets.rate_oam01_port_1_test_nested2Level:
         type: org.openecomp.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_server_ps_2_test_nested3Level_test_nested2Level:
+      disk.device.read.bytes.rate_server_ps_2_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_server_oam_2_test_nested2Level:
+      disk.device.write.bytes.rate_server_ps_1_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_server_oam_1_test_nested2Level:
+      disk.device.iops_server_ps_2_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_server_ps_1_test_nested3Level_test_nested2Level:
+      disk.write.bytes_server_cmaui_1:
         type: org.openecomp.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_server_oam_2_test_nested2Level:
+      disk.write.bytes_server_cmaui_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      os_server_oam_2_test_nested2Level:
-        type: tosca.capabilities.OperatingSystem
+      feature_server_cmaui_1:
+        type: tosca.capabilities.Node
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.iops_server_ps_1_test_nested3Level_test_nested2Level:
+      disk.allocation_server_cmaui_1:
         type: org.openecomp.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_server_cmaui_1:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      host_server_oam_1_test_nested2Level:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.allocation_server_cmaui_2:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      feature_server_cmaui_2:
+        type: tosca.capabilities.Node
         occurrences:
         - 1
         - UNBOUNDED
-      vcpus_server_oam_1_test_nested2Level:
+      instance_server_ps_1_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_oam01_port_1_test_nested2Level:
+      disk.allocation_server_cmaui_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.write.bytes_server_ps_2_test_nested3Level_test_nested2Level:
+      memory_server_oam_2_test_nested2Level:
         type: org.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_server_cmaui_1:
+      vcpus_server_cmaui_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      network.outgoing.bytes.rate_pd01_port_1_test_nested3Level_test_nested2Level:
+      disk.root.size_server_oam_2_test_nested2Level:
         type: org.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_server_ps_2_test_nested3Level_test_nested2Level:
-        type: tosca.capabilities.network.Bindable
+      disk.device.allocation_server_ps_2_test_nested3Level_test_nested2Level:
+        type: org.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_server_oam_2_test_nested2Level:
+      memory.usage_server_ps_2_test_nested3Level_test_nested2Level:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.iops_server_oam_1_test_nested2Level:
+      network.incoming.bytes_cmaui02_port_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.usage_server_ps_2_test_nested3Level_test_nested2Level:
+      disk.write.requests_server_cmaui_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      network.outgoing.bytes_pd01_port_1_test_nested3Level_test_nested2Level:
+      disk.write.requests_server_cmaui_1:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.capacity_server_ps_1_test_nested3Level_test_nested2Level:
+      network.incoming.bytes_oam01_port_1_test_nested2Level:
         type: org.openecomp.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_server_oam_1_test_nested2Level:
+      vcpus_server_oam_2_test_nested2Level:
         type: org.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_server_ps_2_test_nested3Level_test_nested2Level:
+      disk.usage_server_cmaui_1:
         type: org.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_oam01_port_1_test_nested2Level:
-        type: tosca.capabilities.Node
+      os_server_ps_1_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.OperatingSystem
         occurrences:
         - 1
         - UNBOUNDED
-      network.outgoing.bytes_cmaui01_port_1:
+      disk.usage_server_cmaui_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      instance_server_cmaui_2:
+      network.outgoing.packets.rate_pd01_port_1_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_server_cmaui_1:
+      network.incoming.bytes.rate_pd01_port_1_test_nested3Level_test_nested2Level:
         type: org.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_server_ps_2_test_nested3Level_test_nested2Level:
+      disk.latency_server_oam_2_test_nested2Level:
         type: org.openecomp.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_cmaui01_port_1:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      attachment_pd02_port_2_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.Attachment
         occurrences:
         - 1
         - UNBOUNDED
-      disk.read.requests_server_ps_1_test_nested3Level_test_nested2Level:
+      disk.read.bytes.rate_server_ps_1_test_nested3Level_test_nested2Level:
         type: org.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_server_cmaui_1:
+      memory_server_oam_1_test_nested2Level:
         type: org.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_server_ps_1_test_nested3Level_test_nested2Level:
-        type: tosca.capabilities.Container
-        valid_source_types:
-        - tosca.nodes.SoftwareComponent
-        occurrences:
-        - 1
-        - UNBOUNDED
-      scalable_server_oam_1_test_nested2Level:
-        type: tosca.capabilities.Scalable
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.packets.rate_pd01_port_1_test_nested3Level_test_nested2Level:
-        type: org.openecomp.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_server_ps_2_test_nested3Level_test_nested2Level:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      binding_server_oam_2_test_nested2Level:
+        type: tosca.capabilities.network.Bindable
         occurrences:
         - 1
         - UNBOUNDED
-      cpu_server_ps_1_test_nested3Level_test_nested2Level:
+      disk.ephemeral.size_server_oam_2_test_nested2Level:
         type: org.openecomp.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_server_cmaui_2:
+      vcpus_server_ps_1_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_server_cmaui_1:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      os_server_cmaui_2:
+        type: tosca.capabilities.OperatingSystem
         occurrences:
         - 1
         - UNBOUNDED
-      cpu.delta_server_cmaui_1:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      os_server_cmaui_1:
+        type: tosca.capabilities.OperatingSystem
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.write.bytes_server_oam_1_test_nested2Level:
+      network.incoming.bytes.rate_pd02_port_2_test_nested3Level_test_nested2Level:
         type: org.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_server_cmaui_2:
+      disk.write.requests_server_ps_1_test_nested3Level_test_nested2Level:
         type: org.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_server_oam_1_test_nested2Level:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      feature_server_ps_2_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.Node
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.write.bytes.rate_server_oam_1_test_nested2Level:
+      network.outgoing.bytes_oam02_port_2_test_nested2Level:
         type: org.openecomp.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_server_oam_2_test_nested2Level:
+      disk.device.iops_server_oam_1_test_nested2Level:
         type: org.openecomp.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_server_oam_1_test_nested2Level:
+      disk.ephemeral.size_server_oam_1_test_nested2Level:
         type: org.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_pd02_port_2_test_nested3Level_test_nested2Level:
-        type: tosca.capabilities.network.Bindable
-        valid_source_types:
-        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-        occurrences:
-        - 0
-        - UNBOUNDED
-      disk.device.read.bytes.rate_server_oam_2_test_nested2Level:
+      network.outgoing.packets.rate_pd02_port_2_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_pd01_port_1_test_nested3Level_test_nested2Level:
+      network.incoming.packets_cmaui01_port_1:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.write.bytes.rate_server_ps_2_test_nested3Level_test_nested2Level:
+      disk.read.bytes_server_ps_1_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_server_oam_2_test_nested2Level:
+      network.outgoing.bytes.rate_oam01_port_1_test_nested2Level:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.usage_server_cmaui_1:
+      disk.device.read.requests_server_oam_2_test_nested2Level:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.usage_server_cmaui_2:
+      network.incoming.bytes_oam02_port_2_test_nested2Level:
         type: org.openecomp.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_cmaui01_port_1:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      host_server_ps_2_test_nested3Level_test_nested2Level:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
         occurrences:
         - 1
         - UNBOUNDED
-      binding_cmaui01_port_1:
-        type: tosca.capabilities.network.Bindable
+      host_server_cmaui_2:
+        type: tosca.capabilities.Container
         valid_source_types:
-        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-        occurrences:
-        - 0
-        - UNBOUNDED
-      scalable_server_oam_2_test_nested2Level:
-        type: tosca.capabilities.Scalable
+        - tosca.nodes.SoftwareComponent
         occurrences:
         - 1
         - UNBOUNDED
-      disk.capacity_server_ps_2_test_nested3Level_test_nested2Level:
+      disk.device.usage_server_ps_1_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_pd01_port_1_test_nested3Level_test_nested2Level:
+      disk.iops_server_ps_1_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_server_ps_2_test_nested3Level_test_nested2Level:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      host_server_cmaui_1:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
         occurrences:
         - 1
         - UNBOUNDED
-      network.outgoing.bytes.rate_cmaui01_port_1:
+      disk.read.bytes_server_oam_2_test_nested2Level:
         type: org.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_server_ps_2_test_nested3Level_test_nested2Level:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      os_server_oam_1_test_nested2Level:
+        type: tosca.capabilities.OperatingSystem
         occurrences:
         - 1
         - UNBOUNDED
-      disk.read.bytes.rate_server_oam_1_test_nested2Level:
+      cpu.delta_server_ps_2_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_server_ps_2_test_nested3Level_test_nested2Level:
+      disk.device.read.requests_server_ps_1_test_nested3Level_test_nested2Level:
         type: org.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_server_ps_1_test_nested3Level_test_nested2Level:
-        type: tosca.capabilities.Scalable
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.write.requests.rate_server_cmaui_2:
+      disk.write.requests_server_oam_1_test_nested2Level:
         type: org.openecomp.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_server_cmaui_1:
+      network.incoming.packets.rate_oam01_port_1_test_nested2Level:
         type: org.openecomp.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_server_oam_1_test_nested2Level:
+      network.outgoing.bytes_oam01_port_1_test_nested2Level:
         type: org.openecomp.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_cmaui02_port_2:
+      network.incoming.packets.rate_cmaui02_port_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      endpoint_server_oam_2_test_nested2Level:
-        type: tosca.capabilities.Endpoint.Admin
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.bytes.rate_pd02_port_2_test_nested3Level_test_nested2Level:
+      disk.device.write.requests_server_ps_1_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_server_ps_2_test_nested3Level_test_nested2Level:
+      disk.device.latency_server_oam_2_test_nested2Level:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.iops_server_ps_2_test_nested3Level_test_nested2Level:
+      cpu_server_ps_2_test_nested3Level_test_nested2Level:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      attachment_cmaui02_port_2:
-        type: tosca.capabilities.Attachment
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.write.bytes.rate_server_oam_2_test_nested2Level:
+      disk.device.read.requests.rate_server_cmaui_1:
         type: org.openecomp.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_server_ps_1_test_nested3Level_test_nested2Level:
+      disk.device.read.requests.rate_server_oam_1_test_nested2Level:
         type: org.openecomp.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_server_cmaui_1:
+      disk.write.requests.rate_server_oam_1_test_nested2Level:
         type: org.openecomp.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_server_cmaui_2:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      binding_oam01_port_1_test_nested2Level:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
         occurrences:
-        - 1
+        - 0
         - UNBOUNDED
-      disk.device.capacity_server_cmaui_2:
+      vcpus_server_cmaui_1:
         type: org.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_server_oam_1_test_nested2Level:
+      feature_test_nested3Level_test_nested2Level:
         type: tosca.capabilities.Node
         occurrences:
         - 1
         - UNBOUNDED
-      scalable_server_ps_2_test_nested3Level_test_nested2Level:
-        type: tosca.capabilities.Scalable
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.usage_server_ps_1_test_nested3Level_test_nested2Level:
-        type: org.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_server_cmaui_2:
+      disk.device.write.requests.rate_server_ps_1_test_nested3Level_test_nested2Level:
         type: org.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_server_cmaui_2:
+      disk.device.write.requests.rate_server_oam_1_test_nested2Level:
         type: org.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_server_cmaui_1:
+      disk.read.bytes.rate_server_cmaui_1:
         type: org.openecomp.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_server_ps_2_test_nested3Level_test_nested2Level:
+      disk.read.bytes.rate_server_cmaui_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.usage_server_oam_2_test_nested2Level:
+      disk.device.read.requests.rate_server_cmaui_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      binding_server_oam_1_test_nested2Level:
-        type: tosca.capabilities.network.Bindable
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.read.requests.rate_server_ps_2_test_nested3Level_test_nested2Level:
+      instance_server_oam_1_test_nested2Level:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.capacity_server_cmaui_1:
+      memory.resident_server_cmaui_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      network.outpoing.packets_pd02_port_2_test_nested3Level_test_nested2Level:
+      disk.read.requests_server_ps_2_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_server_oam_2_test_nested2Level:
+      network.incoming.bytes.rate_oam01_port_1_test_nested2Level:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.capacity_server_cmaui_2:
+      disk.write.bytes.rate_server_oam_1_test_nested2Level:
         type: org.openecomp.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_server_oam_2_test_nested2Level:
+      cpu_util_server_oam_2_test_nested2Level:
         type: org.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_server_ps_2_test_nested3Level_test_nested2Level:
+      memory.resident_server_cmaui_1:
         type: org.openecomp.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_server_ps_1_test_nested3Level_test_nested2Level:
+      disk.write.bytes_server_oam_1_test_nested2Level:
         type: org.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_server_oam_2_test_nested2Level:
-        type: tosca.capabilities.Container
-        valid_source_types:
-        - tosca.nodes.SoftwareComponent
-        occurrences:
-        - 1
-        - UNBOUNDED
-      feature_server_oam_2_test_nested2Level:
+      feature_pd02_port_2_test_nested3Level_test_nested2Level:
         type: tosca.capabilities.Node
         occurrences:
         - 1
         - UNBOUNDED
-      disk.allocation_server_ps_1_test_nested3Level_test_nested2Level:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.iops_server_cmaui_2:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      memory_server_ps_1_test_nested3Level_test_nested2Level:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.iops_server_cmaui_1:
-        type: org.openecomp.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_server_oam_1_test_nested2Level:
+      disk.latency_server_cmaui_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.read.bytes.rate_server_oam_2_test_nested2Level:
+      disk.device.write.bytes_server_ps_1_test_nested3Level_test_nested2Level:
         type: org.openecomp.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_server_ps_1_test_nested3Level_test_nested2Level:
+      disk.latency_server_cmaui_1:
         type: org.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_cmaui01_port_1:
-        type: tosca.capabilities.Node
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.read.requests.rate_server_ps_1_test_nested3Level_test_nested2Level:
+      memory.usage_server_cmaui_1:
         type: org.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_server_oam_1_test_nested2Level:
-        type: tosca.capabilities.Endpoint.Admin
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.read.bytes.rate_server_oam_1_test_nested2Level:
+      memory.usage_server_cmaui_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      network.incoming.packets.rate_oam02_port_2_test_nested2Level:
+      network.outpoing.packets_cmaui01_port_1:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.write.requests.rate_server_oam_2_test_nested2Level:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
+  org.openecomp.resource.abstract.nodes.heat.nested2:
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+    properties:
+      p1:
+        type: string
+        description: UID of OAM network
+        required: true
+        status: SUPPORTED
+      p2:
+        type: string
+        description: UID of OAM network
+        required: true
+        status: SUPPORTED
+      cmaui_image:
+        type: string
+        description: Image for CMAUI server
+        required: true
+        status: SUPPORTED
+      cmaui_flavor:
+        type: string
+        description: Flavor for CMAUI server
+        required: true
+        status: SUPPORTED
+      security_group_name:
+        type: list
+        description: CMAUI1, CMAUI2 server names
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      oam_names:
+        type: list
+        description: CMAUI1, CMAUI2 server names
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      availability_zone_0:
+        type: string
+        description: availabilityzone name
+        required: true
+        status: SUPPORTED
+      cmaui_oam_ips:
+        type: string
+        required: true
+        status: SUPPORTED
+      net:
+        type: string
+        required: true
+        status: SUPPORTED
+    requirements:
+    - dependency_oam01_port_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
         - UNBOUNDED
-      disk.device.read.bytes_server_oam_1_test_nested2Level:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+    - link_oam01_port_1:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_oam02_port_2:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_oam02_port_2:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
         occurrences:
         - 1
+        - 1
+    - dependency_test_nested3Level:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
         - UNBOUNDED
-      network.outgoing.packets.rate_oam01_port_1_test_nested2Level:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+    - dependency_pd01_port_1_test_nested3Level:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd01_port_1_test_nested3Level:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
         occurrences:
         - 1
+        - 1
+    - dependency_pd02_port_2_test_nested3Level:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
         - UNBOUNDED
-      disk.device.read.bytes.rate_server_ps_2_test_nested3Level_test_nested2Level:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+    - link_pd02_port_2_test_nested3Level:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
         occurrences:
         - 1
+        - 1
+    - dependency_server_ps_2_test_nested3Level:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
         - UNBOUNDED
-      disk.device.write.bytes.rate_server_ps_1_test_nested3Level_test_nested2Level:
+    - local_storage_server_ps_2_test_nested3Level:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_server_ps_1_test_nested3Level:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_server_ps_1_test_nested3Level:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_server_oam_2:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_server_oam_2:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_server_oam_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_server_oam_1:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    capabilities:
+      network.incoming.packets.rate_oam02_port_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.iops_server_ps_2_test_nested3Level_test_nested2Level:
+      disk.latency_server_oam_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.write.bytes_server_cmaui_1:
+      disk.device.write.requests.rate_server_ps_1_test_nested3Level:
         type: org.openecomp.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_server_cmaui_2:
+      memory.resident_server_ps_2_test_nested3Level:
         type: org.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_server_cmaui_1:
-        type: tosca.capabilities.Node
+      disk.latency_server_oam_1:
+        type: org.openecomp.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_server_cmaui_1:
+      network.incoming.bytes_oam02_port_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      host_server_oam_1_test_nested2Level:
-        type: tosca.capabilities.Container
-        valid_source_types:
-        - tosca.nodes.SoftwareComponent
+      endpoint_server_oam_1:
+        type: tosca.capabilities.Endpoint.Admin
         occurrences:
         - 1
         - UNBOUNDED
-      feature_server_cmaui_2:
-        type: tosca.capabilities.Node
+      endpoint_server_oam_2:
+        type: tosca.capabilities.Endpoint.Admin
         occurrences:
         - 1
         - UNBOUNDED
-      instance_server_ps_1_test_nested3Level_test_nested2Level:
+      binding_pd01_port_1_test_nested3Level:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.device.write.requests.rate_server_ps_2_test_nested3Level:
         type: org.openecomp.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_server_cmaui_2:
+      memory.resident_server_ps_1_test_nested3Level:
         type: org.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_server_oam_2_test_nested2Level:
+      cpu.delta_server_oam_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      vcpus_server_cmaui_2:
+      disk.device.read.bytes_server_oam_1:
         type: org.openecomp.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_server_oam_2_test_nested2Level:
+      disk.device.read.bytes_server_oam_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.allocation_server_ps_2_test_nested3Level_test_nested2Level:
+      cpu.delta_server_oam_1:
         type: org.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_server_ps_2_test_nested3Level_test_nested2Level:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      attachment_oam01_port_1:
+        type: tosca.capabilities.Attachment
         occurrences:
         - 1
         - UNBOUNDED
-      network.incoming.bytes_cmaui02_port_2:
+      disk.write.bytes_server_ps_1_test_nested3Level:
         type: org.openecomp.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_server_cmaui_2:
+      disk.write.requests_server_ps_2_test_nested3Level:
         type: org.openecomp.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_server_cmaui_1:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      scalable_server_oam_2:
+        type: tosca.capabilities.Scalable
         occurrences:
         - 1
         - UNBOUNDED
-      network.incoming.bytes_oam01_port_1_test_nested2Level:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      scalable_server_oam_1:
+        type: tosca.capabilities.Scalable
         occurrences:
         - 1
         - UNBOUNDED
-      vcpus_server_oam_2_test_nested2Level:
+      disk.device.write.bytes_server_ps_1_test_nested3Level:
         type: org.openecomp.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_server_cmaui_1:
+      disk.write.requests_server_ps_1_test_nested3Level:
         type: org.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_server_ps_1_test_nested3Level_test_nested2Level:
-        type: tosca.capabilities.OperatingSystem
+      network.outgoing.bytes_pd02_port_2_test_nested3Level:
+        type: org.openecomp.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_server_cmaui_2:
+      disk.write.bytes_server_ps_2_test_nested3Level:
         type: org.openecomp.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_pd01_port_1_test_nested3Level_test_nested2Level:
+      disk.read.bytes.rate_server_oam_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      network.incoming.bytes.rate_pd01_port_1_test_nested3Level_test_nested2Level:
+      disk.read.bytes.rate_server_oam_1:
         type: org.openecomp.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_server_oam_2_test_nested2Level:
+      disk.capacity_server_ps_1_test_nested3Level:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      attachment_pd02_port_2_test_nested3Level_test_nested2Level:
-        type: tosca.capabilities.Attachment
+      disk.device.write.requests_server_oam_1:
+        type: org.openecomp.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_server_ps_1_test_nested3Level_test_nested2Level:
+      disk.device.write.requests_server_oam_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      memory_server_oam_1_test_nested2Level:
+      network.incoming.packets.rate_pd02_port_2_test_nested3Level:
         type: org.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_server_oam_2_test_nested2Level:
-        type: tosca.capabilities.network.Bindable
+      disk.device.write.bytes_server_ps_2_test_nested3Level:
+        type: org.openecomp.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_server_oam_2_test_nested2Level:
+      disk.device.write.bytes_server_oam_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      vcpus_server_ps_1_test_nested3Level_test_nested2Level:
+      disk.usage_server_oam_1:
         type: org.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_server_cmaui_2:
-        type: tosca.capabilities.OperatingSystem
+      disk.capacity_server_oam_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      os_server_cmaui_1:
-        type: tosca.capabilities.OperatingSystem
+      disk.usage_server_oam_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      network.incoming.bytes.rate_pd02_port_2_test_nested3Level_test_nested2Level:
+      disk.device.write.bytes_server_oam_1:
         type: org.openecomp.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_server_ps_1_test_nested3Level_test_nested2Level:
+      disk.capacity_server_oam_1:
         type: org.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_server_ps_2_test_nested3Level_test_nested2Level:
-        type: tosca.capabilities.Node
+      network.incoming.packets_oam01_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      network.outgoing.bytes_oam02_port_2_test_nested2Level:
+      disk.device.read.requests.rate_server_ps_1_test_nested3Level:
         type: org.openecomp.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_server_oam_1_test_nested2Level:
+      disk.latency_server_ps_1_test_nested3Level:
         type: org.openecomp.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_server_oam_1_test_nested2Level:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      endpoint_server_ps_1_test_nested3Level:
+        type: tosca.capabilities.Endpoint.Admin
         occurrences:
         - 1
         - UNBOUNDED
-      network.outgoing.packets.rate_pd02_port_2_test_nested3Level_test_nested2Level:
+      disk.capacity_server_ps_2_test_nested3Level:
         type: org.openecomp.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_cmaui01_port_1:
+      network.outgoing.bytes.rate_oam01_port_1:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.read.bytes_server_ps_1_test_nested3Level_test_nested2Level:
+      disk.iops_server_ps_2_test_nested3Level:
         type: org.openecomp.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_oam01_port_1_test_nested2Level:
+      disk.device.capacity_server_ps_2_test_nested3Level:
         type: org.openecomp.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_server_oam_2_test_nested2Level:
+      disk.device.usage_server_ps_1_test_nested3Level:
         type: org.openecomp.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_oam02_port_2_test_nested2Level:
+      cpu.delta_server_ps_2_test_nested3Level:
         type: org.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_server_ps_2_test_nested3Level_test_nested2Level:
+      host_server_ps_2_test_nested3Level:
         type: tosca.capabilities.Container
         valid_source_types:
         - tosca.nodes.SoftwareComponent
         occurrences:
         - 1
         - UNBOUNDED
-      host_server_cmaui_2:
-        type: tosca.capabilities.Container
-        valid_source_types:
-        - tosca.nodes.SoftwareComponent
+      disk.device.read.bytes_server_ps_2_test_nested3Level:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.usage_server_ps_1_test_nested3Level_test_nested2Level:
+      feature_server_ps_1_test_nested3Level:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests.rate_server_ps_1_test_nested3Level:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.iops_server_ps_1_test_nested3Level_test_nested2Level:
+      network.outpoing.packets_pd01_port_1_test_nested3Level:
         type: org.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_server_cmaui_1:
-        type: tosca.capabilities.Container
-        valid_source_types:
-        - tosca.nodes.SoftwareComponent
+      disk.device.allocation_server_ps_1_test_nested3Level:
+        type: org.openecomp.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_server_oam_2_test_nested2Level:
+      network.outgoing.bytes.rate_pd02_port_2_test_nested3Level:
         type: org.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_server_oam_1_test_nested2Level:
-        type: tosca.capabilities.OperatingSystem
+      disk.allocation_server_oam_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      cpu.delta_server_ps_2_test_nested3Level_test_nested2Level:
+      memory.resident_server_oam_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.read.requests_server_ps_1_test_nested3Level_test_nested2Level:
+      memory.resident_server_oam_1:
         type: org.openecomp.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_server_oam_1_test_nested2Level:
+      network.outgoing.packets.rate_pd01_port_1_test_nested3Level:
         type: org.openecomp.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_oam01_port_1_test_nested2Level:
+      memory.usage_server_ps_2_test_nested3Level:
         type: org.openecomp.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_oam01_port_1_test_nested2Level:
+      disk.read.bytes.rate_server_ps_1_test_nested3Level:
         type: org.openecomp.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_cmaui02_port_2:
+      disk.device.read.requests.rate_server_oam_1:
         type: org.openecomp.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_server_ps_1_test_nested3Level_test_nested2Level:
+      disk.allocation_server_oam_1:
         type: org.openecomp.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_server_oam_2_test_nested2Level:
+      memory_server_ps_2_test_nested3Level:
         type: org.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_server_ps_2_test_nested3Level_test_nested2Level:
+      disk.device.read.requests.rate_server_oam_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.read.requests.rate_server_cmaui_1:
+      vcpus_server_ps_1_test_nested3Level:
         type: org.openecomp.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_server_oam_1_test_nested2Level:
+      disk.write.requests.rate_server_oam_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.write.requests.rate_server_oam_1_test_nested2Level:
+      disk.write.requests.rate_server_oam_1:
         type: org.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_oam01_port_1_test_nested2Level:
+      network.incoming.bytes_pd01_port_1_test_nested3Level:
+        type: org.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_server_ps_1_test_nested3Level:
+        type: org.openecomp.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_pd02_port_2_test_nested3Level:
+        type: org.openecomp.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_pd01_port_1_test_nested3Level:
+        type: org.openecomp.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_server_oam_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes_server_oam_1:
+        type: org.openecomp.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_server_ps_2_test_nested3Level:
+        type: org.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_oam02_port_2:
         type: tosca.capabilities.network.Bindable
         valid_source_types:
         - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
         occurrences:
         - 0
         - UNBOUNDED
-      vcpus_server_cmaui_1:
+      binding_server_oam_1:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_server_oam_2:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      endpoint_server_ps_2_test_nested3Level:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_oam02_port_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      feature_test_nested3Level_test_nested2Level:
-        type: tosca.capabilities.Node
+      network.outpoing.packets_oam01_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.write.requests.rate_server_ps_1_test_nested3Level_test_nested2Level:
+      disk.device.read.bytes.rate_server_oam_1:
         type: org.openecomp.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_server_oam_1_test_nested2Level:
+      disk.device.read.bytes.rate_server_oam_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.read.bytes.rate_server_cmaui_1:
+      os_server_ps_1_test_nested3Level:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.ephemeral.size_server_ps_1_test_nested3Level:
         type: org.openecomp.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_server_cmaui_2:
+      network.incoming.bytes.rate_pd01_port_1_test_nested3Level:
         type: org.openecomp.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_server_cmaui_2:
+      instance_server_oam_1:
         type: org.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_server_oam_1_test_nested2Level:
+      disk.usage_server_ps_1_test_nested3Level:
         type: org.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_server_cmaui_2:
+      instance_server_oam_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.read.requests_server_ps_2_test_nested3Level_test_nested2Level:
+      network.incoming.packets_oam02_port_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      network.incoming.bytes.rate_oam01_port_1_test_nested2Level:
+      disk.read.bytes_server_ps_2_test_nested3Level:
         type: org.openecomp.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_server_oam_1_test_nested2Level:
+      disk.root.size_server_oam_1:
         type: org.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_server_oam_2_test_nested2Level:
+      disk.root.size_server_oam_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      memory.resident_server_cmaui_1:
+      cpu.delta_server_ps_1_test_nested3Level:
         type: org.openecomp.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_server_oam_1_test_nested2Level:
+      disk.iops_server_oam_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      feature_pd02_port_2_test_nested3Level_test_nested2Level:
-        type: tosca.capabilities.Node
+      disk.iops_server_oam_1:
+        type: org.openecomp.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_server_cmaui_2:
+      disk.write.bytes.rate_server_ps_1_test_nested3Level:
         type: org.openecomp.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_server_ps_1_test_nested3Level_test_nested2Level:
+      host_server_ps_1_test_nested3Level:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_oam02_port_2:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.iops_server_oam_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.latency_server_cmaui_1:
+      disk.device.iops_server_oam_1:
         type: org.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_server_cmaui_1:
+      scalable_server_ps_2_test_nested3Level:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.root.size_server_ps_2_test_nested3Level:
         type: org.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_server_cmaui_2:
+      host_server_oam_2:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      host_server_oam_1:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.capacity_server_ps_1_test_nested3Level:
         type: org.openecomp.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_cmaui01_port_1:
+      network.incoming.bytes.rate_oam02_port_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-  org.openecomp.resource.abstract.nodes.heat.nested2:
-    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
-    properties:
-      p1:
-        type: string
-        description: UID of OAM network
-        required: true
-        status: SUPPORTED
-      p2:
-        type: string
-        description: UID of OAM network
-        required: true
-        status: SUPPORTED
-      cmaui_image:
-        type: string
-        description: Image for CMAUI server
-        required: true
-        status: SUPPORTED
-      cmaui_flavor:
-        type: string
-        description: Flavor for CMAUI server
-        required: true
-        status: SUPPORTED
-      security_group_name:
-        type: list
-        description: CMAUI1, CMAUI2 server names
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      oam_names:
-        type: list
-        description: CMAUI1, CMAUI2 server names
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      availability_zone_0:
-        type: string
-        description: availabilityzone name
-        required: true
-        status: SUPPORTED
-      cmaui_oam_ips:
-        type: string
-        required: true
-        status: SUPPORTED
-      net:
-        type: string
-        required: true
-        status: SUPPORTED
-    requirements:
-    - dependency_oam01_port_1:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - link_oam01_port_1:
-        capability: tosca.capabilities.network.Linkable
-        relationship: tosca.relationships.network.LinksTo
+      disk.write.requests.rate_server_ps_2_test_nested3Level:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
-        - 1
-    - dependency_oam02_port_2:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
         - UNBOUNDED
-    - link_oam02_port_2:
-        capability: tosca.capabilities.network.Linkable
-        relationship: tosca.relationships.network.LinksTo
+      disk.latency_server_ps_2_test_nested3Level:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
-        - 1
-    - dependency_test_nested3Level:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - dependency_pd01_port_1_test_nested3Level:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
         - UNBOUNDED
-    - link_pd01_port_1_test_nested3Level:
-        capability: tosca.capabilities.network.Linkable
-        relationship: tosca.relationships.network.LinksTo
+      network.incoming.packets.rate_oam01_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
-        - 1
-    - dependency_pd02_port_2_test_nested3Level:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
         - UNBOUNDED
-    - link_pd02_port_2_test_nested3Level:
-        capability: tosca.capabilities.network.Linkable
-        relationship: tosca.relationships.network.LinksTo
+      disk.device.latency_server_ps_1_test_nested3Level:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
-        - 1
-    - dependency_server_ps_2_test_nested3Level:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - local_storage_server_ps_2_test_nested3Level:
-        capability: tosca.capabilities.Attachment
-        node: tosca.nodes.BlockStorage
-        relationship: tosca.relationships.AttachesTo
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - dependency_server_ps_1_test_nested3Level:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
         - UNBOUNDED
-    - local_storage_server_ps_1_test_nested3Level:
-        capability: tosca.capabilities.Attachment
-        node: tosca.nodes.BlockStorage
-        relationship: tosca.relationships.AttachesTo
+      disk.ephemeral.size_server_oam_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
-        - 0
+        - 1
         - UNBOUNDED
-    - dependency_server_oam_2:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
+      feature_server_oam_2:
+        type: tosca.capabilities.Node
         occurrences:
-        - 0
+        - 1
         - UNBOUNDED
-    - local_storage_server_oam_2:
-        capability: tosca.capabilities.Attachment
-        node: tosca.nodes.BlockStorage
-        relationship: tosca.relationships.AttachesTo
+      disk.ephemeral.size_server_oam_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
-        - 0
+        - 1
         - UNBOUNDED
-    - dependency_server_oam_1:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
+      feature_server_oam_1:
+        type: tosca.capabilities.Node
         occurrences:
-        - 0
+        - 1
         - UNBOUNDED
-    - local_storage_server_oam_1:
-        capability: tosca.capabilities.Attachment
-        node: tosca.nodes.BlockStorage
-        relationship: tosca.relationships.AttachesTo
+      attachment_pd02_port_2_test_nested3Level:
+        type: tosca.capabilities.Attachment
         occurrences:
-        - 0
+        - 1
         - UNBOUNDED
-    capabilities:
-      network.incoming.packets.rate_oam02_port_2:
+      network.incoming.bytes_oam01_port_1:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.latency_server_oam_2:
+      cpu_server_ps_2_test_nested3Level:
         type: org.openecomp.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_server_ps_1_test_nested3Level:
+      network.incoming.packets.rate_pd01_port_1_test_nested3Level:
         type: org.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_server_ps_2_test_nested3Level:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      os_server_oam_1:
+        type: tosca.capabilities.OperatingSystem
         occurrences:
         - 1
         - UNBOUNDED
-      disk.latency_server_oam_1:
+      os_server_oam_2:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_oam02_port_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      network.incoming.bytes_oam02_port_2:
+      disk.device.latency_server_ps_2_test_nested3Level:
         type: org.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_server_oam_1:
-        type: tosca.capabilities.Endpoint.Admin
+      feature_oam01_port_1:
+        type: tosca.capabilities.Node
         occurrences:
         - 1
         - UNBOUNDED
-      endpoint_server_oam_2:
-        type: tosca.capabilities.Endpoint.Admin
+      disk.device.allocation_server_oam_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      binding_pd01_port_1_test_nested3Level:
-        type: tosca.capabilities.network.Bindable
-        valid_source_types:
-        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+      disk.device.allocation_server_oam_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
-        - 0
+        - 1
         - UNBOUNDED
-      disk.device.write.requests.rate_server_ps_2_test_nested3Level:
+      network.incoming.bytes_pd02_port_2_test_nested3Level:
         type: org.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_server_ps_1_test_nested3Level:
+      cpu_util_server_ps_2_test_nested3Level:
         type: org.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_server_oam_2:
+      network.incoming.bytes.rate_oam01_port_1:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.read.bytes_server_oam_1:
+      vcpus_server_oam_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.read.bytes_server_oam_2:
+      disk.write.requests_server_oam_1:
         type: org.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_server_oam_1:
+      cpu_util_server_ps_1_test_nested3Level:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      attachment_oam01_port_1:
-        type: tosca.capabilities.Attachment
+      disk.write.requests_server_oam_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.write.bytes_server_ps_1_test_nested3Level:
+      disk.ephemeral.size_server_ps_2_test_nested3Level:
         type: org.openecomp.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_server_ps_2_test_nested3Level:
+      disk.read.bytes_server_ps_1_test_nested3Level:
         type: org.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_server_oam_2:
-        type: tosca.capabilities.Scalable
+      disk.device.read.bytes.rate_server_ps_2_test_nested3Level:
+        type: org.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_server_oam_1:
-        type: tosca.capabilities.Scalable
+      os_server_ps_2_test_nested3Level:
+        type: tosca.capabilities.OperatingSystem
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.write.bytes_server_ps_1_test_nested3Level:
+      network.incoming.bytes.rate_pd02_port_2_test_nested3Level:
         type: org.openecomp.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_server_ps_1_test_nested3Level:
+      network.outgoing.bytes.rate_oam02_port_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      network.outgoing.bytes_pd02_port_2_test_nested3Level:
+      vcpus_server_oam_1:
         type: org.openecomp.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_server_ps_2_test_nested3Level:
+      network.incoming.packets_pd02_port_2_test_nested3Level:
         type: org.openecomp.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_server_oam_2:
+      disk.usage_server_ps_2_test_nested3Level:
         type: org.openecomp.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_server_oam_1:
+      disk.device.write.requests.rate_server_oam_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.capacity_server_ps_1_test_nested3Level:
+      disk.device.write.requests.rate_server_oam_1:
         type: org.openecomp.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_server_oam_1:
+      cpu_server_oam_1:
         type: org.openecomp.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_server_oam_2:
+      cpu_server_oam_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      network.incoming.packets.rate_pd02_port_2_test_nested3Level:
-        type: org.openecomp.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_server_ps_2_test_nested3Level:
-        type: org.openecomp.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_server_oam_2:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.usage_server_oam_1:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      binding_oam01_port_1:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
         occurrences:
-        - 1
+        - 0
         - UNBOUNDED
-      disk.capacity_server_oam_2:
+      disk.device.write.requests_server_ps_2_test_nested3Level:
         type: org.openecomp.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_server_oam_2:
+      memory.usage_server_ps_1_test_nested3Level:
         type: org.openecomp.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_server_oam_1:
+      disk.device.write.bytes.rate_server_ps_1_test_nested3Level:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.capacity_server_oam_1:
+      cpu_server_ps_1_test_nested3Level:
         type: org.openecomp.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_oam01_port_1:
+      disk.write.bytes.rate_server_ps_2_test_nested3Level:
         type: org.openecomp.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_server_ps_1_test_nested3Level:
+      instance_server_ps_1_test_nested3Level:
         type: org.openecomp.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_server_ps_1_test_nested3Level:
+      disk.device.read.requests_server_ps_2_test_nested3Level:
         type: org.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_server_ps_1_test_nested3Level:
-        type: tosca.capabilities.Endpoint.Admin
+      feature_server_ps_2_test_nested3Level:
+        type: tosca.capabilities.Node
         occurrences:
         - 1
         - UNBOUNDED
-      disk.capacity_server_ps_2_test_nested3Level:
+      disk.device.read.requests_server_oam_1:
         type: org.openecomp.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_oam01_port_1:
+      disk.read.requests_server_ps_2_test_nested3Level:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.iops_server_ps_2_test_nested3Level:
+      disk.root.size_server_ps_1_test_nested3Level:
         type: org.openecomp.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_server_ps_2_test_nested3Level:
+      disk.read.requests_server_oam_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.usage_server_ps_1_test_nested3Level:
+      disk.device.read.requests_server_oam_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      cpu.delta_server_ps_2_test_nested3Level:
+      disk.read.requests_server_oam_1:
         type: org.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_server_ps_2_test_nested3Level:
-        type: tosca.capabilities.Container
-        valid_source_types:
-        - tosca.nodes.SoftwareComponent
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.read.bytes_server_ps_2_test_nested3Level:
+      memory.usage_server_oam_1:
         type: org.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_server_ps_1_test_nested3Level:
-        type: tosca.capabilities.Node
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.write.requests.rate_server_ps_1_test_nested3Level:
+      disk.device.iops_server_ps_1_test_nested3Level:
         type: org.openecomp.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_pd01_port_1_test_nested3Level:
+      memory.usage_server_oam_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.allocation_server_ps_1_test_nested3Level:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      scalable_server_ps_1_test_nested3Level:
+        type: tosca.capabilities.Scalable
         occurrences:
         - 1
         - UNBOUNDED
-      network.outgoing.bytes.rate_pd02_port_2_test_nested3Level:
+      network.outgoing.packets.rate_pd02_port_2_test_nested3Level:
         type: org.openecomp.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_server_oam_2:
+      disk.read.bytes_server_oam_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      memory.resident_server_oam_2:
+      disk.read.bytes_server_oam_1:
         type: org.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_server_oam_1:
+      network.outgoing.bytes_pd01_port_1_test_nested3Level:
         type: org.openecomp.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_pd01_port_1_test_nested3Level:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      binding_server_ps_2_test_nested3Level:
+        type: tosca.capabilities.network.Bindable
         occurrences:
         - 1
         - UNBOUNDED
-      memory.usage_server_ps_2_test_nested3Level:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      feature_pd02_port_2_test_nested3Level:
+        type: tosca.capabilities.Node
         occurrences:
         - 1
         - UNBOUNDED
-      disk.read.bytes.rate_server_ps_1_test_nested3Level:
+      disk.device.write.bytes.rate_server_oam_1:
         type: org.openecomp.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_server_oam_1:
+      disk.device.iops_server_ps_2_test_nested3Level:
         type: org.openecomp.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_server_oam_1:
+      disk.write.bytes.rate_server_oam_1:
         type: org.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_server_ps_2_test_nested3Level:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      binding_server_ps_1_test_nested3Level:
+        type: tosca.capabilities.network.Bindable
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.read.requests.rate_server_oam_2:
+      disk.write.bytes.rate_server_oam_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      vcpus_server_ps_1_test_nested3Level:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      attachment_pd01_port_1_test_nested3Level:
+        type: tosca.capabilities.Attachment
         occurrences:
         - 1
         - UNBOUNDED
-      disk.write.requests.rate_server_oam_2:
+      disk.device.write.bytes.rate_server_oam_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.write.requests.rate_server_oam_1:
+      memory_server_oam_1:
         type: org.openecomp.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_pd01_port_1_test_nested3Level:
+      memory_server_oam_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      memory_server_ps_1_test_nested3Level:
+      disk.device.latency_server_oam_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      network.outpoing.packets_pd02_port_2_test_nested3Level:
+      disk.device.latency_server_oam_1:
         type: org.openecomp.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_pd01_port_1_test_nested3Level:
+      disk.device.usage_server_oam_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.write.bytes_server_oam_2:
+      disk.device.usage_server_oam_1:
         type: org.openecomp.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_server_oam_1:
+      disk.read.requests_server_ps_1_test_nested3Level:
         type: org.openecomp.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_server_ps_2_test_nested3Level:
+      disk.device.read.bytes.rate_server_ps_1_test_nested3Level:
         type: org.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_oam02_port_2:
-        type: tosca.capabilities.network.Bindable
-        valid_source_types:
-        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-        occurrences:
-        - 0
-        - UNBOUNDED
-      binding_server_oam_1:
-        type: tosca.capabilities.network.Bindable
-        occurrences:
-        - 1
-        - UNBOUNDED
-      binding_server_oam_2:
-        type: tosca.capabilities.network.Bindable
-        occurrences:
-        - 1
-        - UNBOUNDED
-      endpoint_server_ps_2_test_nested3Level:
-        type: tosca.capabilities.Endpoint.Admin
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.outgoing.bytes_oam02_port_2:
+      disk.device.read.requests.rate_server_ps_2_test_nested3Level:
         type: org.openecomp.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_oam01_port_1:
+      disk.device.usage_server_ps_2_test_nested3Level:
         type: org.openecomp.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_server_oam_1:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      feature_test_nested3Level:
+        type: tosca.capabilities.Node
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.read.bytes.rate_server_oam_2:
+      instance_server_ps_2_test_nested3Level:
         type: org.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_server_ps_1_test_nested3Level:
-        type: tosca.capabilities.OperatingSystem
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.ephemeral.size_server_ps_1_test_nested3Level:
+      disk.allocation_server_ps_1_test_nested3Level:
         type: org.openecomp.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_pd01_port_1_test_nested3Level:
+      disk.device.write.bytes.rate_server_ps_2_test_nested3Level:
         type: org.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_server_oam_1:
+      disk.device.capacity_server_oam_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.usage_server_ps_1_test_nested3Level:
+      network.outgoing.packets.rate_oam01_port_1:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      instance_server_oam_2:
+      disk.device.read.requests_server_ps_1_test_nested3Level:
         type: org.openecomp.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_oam02_port_2:
+      disk.read.bytes.rate_server_ps_2_test_nested3Level:
         type: org.openecomp.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_server_ps_2_test_nested3Level:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      feature_oam02_port_2:
+        type: tosca.capabilities.Node
         occurrences:
         - 1
         - UNBOUNDED
-      disk.root.size_server_oam_1:
+      network.outgoing.bytes_oam01_port_1:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.root.size_server_oam_2:
+      network.outpoing.packets_oam02_port_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      cpu.delta_server_ps_1_test_nested3Level:
+      network.incoming.packets_pd01_port_1_test_nested3Level:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.iops_server_oam_2:
+      cpu_util_server_oam_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.iops_server_oam_1:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      binding_pd02_port_2_test_nested3Level:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
         occurrences:
-        - 1
+        - 0
         - UNBOUNDED
-      disk.write.bytes.rate_server_ps_1_test_nested3Level:
+      disk.device.allocation_server_ps_2_test_nested3Level:
         type: org.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_server_ps_1_test_nested3Level:
-        type: tosca.capabilities.Container
-        valid_source_types:
-        - tosca.nodes.SoftwareComponent
-        occurrences:
-        - 1
-        - UNBOUNDED
-      attachment_oam02_port_2:
-        type: tosca.capabilities.Attachment
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.iops_server_oam_2:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      feature_pd01_port_1_test_nested3Level:
+        type: tosca.capabilities.Node
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.iops_server_oam_1:
+      disk.iops_server_ps_1_test_nested3Level:
         type: org.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_server_ps_2_test_nested3Level:
-        type: tosca.capabilities.Scalable
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.root.size_server_ps_2_test_nested3Level:
+      vcpus_server_ps_2_test_nested3Level:
         type: org.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_server_oam_2:
-        type: tosca.capabilities.Container
-        valid_source_types:
-        - tosca.nodes.SoftwareComponent
-        occurrences:
-        - 1
-        - UNBOUNDED
-      host_server_oam_1:
-        type: tosca.capabilities.Container
-        valid_source_types:
-        - tosca.nodes.SoftwareComponent
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.capacity_server_ps_1_test_nested3Level:
+      disk.device.capacity_server_oam_1:
         type: org.openecomp.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_oam02_port_2:
+      cpu_util_server_oam_1:
         type: org.openecomp.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_server_ps_2_test_nested3Level:
+      disk.device.read.bytes_server_ps_1_test_nested3Level:
         type: org.openecomp.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_server_ps_2_test_nested3Level:
+      disk.device.write.requests_server_ps_1_test_nested3Level:
         type: org.openecomp.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_oam01_port_1:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+  org.openecomp.resource.abstract.nodes.ps:
+    derived_from: org.openecomp.resource.abstract.nodes.VFC
+    properties:
+      port_pd02_port_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      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_pd02_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd02_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_pd02_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd02_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd02_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_pd02_port_security_groups:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      compute_ps_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd02_port_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd02_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      compute_ps_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd02_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_pd02_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_pd02_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+    requirements:
+    - dependency_ps:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
         occurrences:
-        - 1
+        - 0
         - UNBOUNDED
-      disk.device.latency_server_ps_1_test_nested3Level:
+    - local_storage_ps:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_ps_pd02_port:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_ps_pd02_port:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      disk.write.requests.rate_ps:
         type: org.openecomp.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_server_oam_2:
+      disk.device.iops_ps:
         type: org.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_server_oam_2:
-        type: tosca.capabilities.Node
+      scalable_ps:
+        type: tosca.capabilities.Scalable
         occurrences:
         - 1
         - UNBOUNDED
-      disk.ephemeral.size_server_oam_1:
+      disk.write.requests_ps:
         type: org.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_server_oam_1:
-        type: tosca.capabilities.Node
+      host_ps:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
         occurrences:
         - 1
         - UNBOUNDED
-      attachment_pd02_port_2_test_nested3Level:
-        type: tosca.capabilities.Attachment
+      disk.device.allocation_ps:
+        type: org.openecomp.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_oam01_port_1:
+      disk.read.bytes_ps:
         type: org.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_server_ps_2_test_nested3Level:
+      memory.resident_ps:
         type: org.openecomp.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_pd01_port_1_test_nested3Level:
+      disk.device.usage_ps:
         type: org.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_server_oam_1:
-        type: tosca.capabilities.OperatingSystem
+      network.outgoing.bytes.rate_ps_pd02_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_server_oam_2:
-        type: tosca.capabilities.OperatingSystem
+      endpoint_ps:
+        type: tosca.capabilities.Endpoint.Admin
         occurrences:
         - 1
         - UNBOUNDED
-      network.outgoing.packets.rate_oam02_port_2:
+      disk.device.capacity_ps:
         type: org.openecomp.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_server_ps_2_test_nested3Level:
+      cpu_ps:
         type: org.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_oam01_port_1:
-        type: tosca.capabilities.Node
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.device.allocation_server_oam_2:
+      network.incoming.packets_ps_pd02_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_server_oam_1:
+      disk.device.write.bytes_ps:
         type: org.openecomp.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_pd02_port_2_test_nested3Level:
+      network.outgoing.packets.rate_ps_pd02_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_server_ps_2_test_nested3Level:
+      cpu.delta_ps:
         type: org.openecomp.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_oam01_port_1:
+      disk.root.size_ps:
         type: org.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_server_oam_2:
+      disk.device.read.requests.rate_ps:
         type: org.openecomp.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_server_oam_1:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      binding_ps:
+        type: tosca.capabilities.network.Bindable
         occurrences:
         - 1
         - UNBOUNDED
-      cpu_util_server_ps_1_test_nested3Level:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      binding_ps_pd02_port:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
         occurrences:
-        - 1
+        - 0
         - UNBOUNDED
-      disk.write.requests_server_oam_2:
+      disk.device.write.requests.rate_ps:
         type: org.openecomp.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_server_ps_2_test_nested3Level:
+      network.outgoing.bytes_ps_pd02_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_server_ps_1_test_nested3Level:
+      cpu_util_ps:
         type: org.openecomp.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_server_ps_2_test_nested3Level:
+      network.outpoing.packets_ps_pd02_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_server_ps_2_test_nested3Level:
-        type: tosca.capabilities.OperatingSystem
+      network.incoming.packets.rate_ps_pd02_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_pd02_port_2_test_nested3Level:
+      network.incoming.bytes_ps_pd02_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_oam02_port_2:
+      disk.read.bytes.rate_ps:
         type: org.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_server_oam_1:
+      disk.device.read.bytes.rate_ps:
         type: org.openecomp.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_pd02_port_2_test_nested3Level:
+      disk.read.requests_ps:
         type: org.openecomp.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_server_ps_2_test_nested3Level:
+      vcpus_ps:
         type: org.openecomp.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_server_oam_2:
+      instance_ps:
         type: org.openecomp.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_server_oam_1:
+      disk.latency_ps:
         type: org.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_server_oam_1:
+      disk.device.read.bytes_ps:
         type: org.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_server_oam_2:
+      memory.usage_ps:
         type: org.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_oam01_port_1:
-        type: tosca.capabilities.network.Bindable
-        valid_source_types:
-        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-        occurrences:
-        - 0
-        - UNBOUNDED
-      disk.device.write.requests_server_ps_2_test_nested3Level:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      feature_ps:
+        type: tosca.capabilities.Node
         occurrences:
         - 1
         - UNBOUNDED
-      memory.usage_server_ps_1_test_nested3Level:
+      disk.device.write.bytes.rate_ps:
         type: org.openecomp.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_server_ps_1_test_nested3Level:
+      disk.ephemeral.size_ps:
         type: org.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_server_ps_1_test_nested3Level:
+      memory_ps:
         type: org.openecomp.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_server_ps_2_test_nested3Level:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      feature_ps_pd02_port:
+        type: tosca.capabilities.Node
         occurrences:
         - 1
         - UNBOUNDED
-      instance_server_ps_1_test_nested3Level:
+      disk.usage_ps:
         type: org.openecomp.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_server_ps_2_test_nested3Level:
+      disk.write.bytes.rate_ps:
         type: org.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_server_ps_2_test_nested3Level:
-        type: tosca.capabilities.Node
+      os_ps:
+        type: tosca.capabilities.OperatingSystem
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.read.requests_server_oam_1:
+      disk.iops_ps:
         type: org.openecomp.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_server_ps_2_test_nested3Level:
+      disk.allocation_ps:
         type: org.openecomp.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_server_ps_1_test_nested3Level:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      attachment_ps_pd02_port:
+        type: tosca.capabilities.Attachment
         occurrences:
         - 1
         - UNBOUNDED
-      disk.read.requests_server_oam_2:
+      disk.device.read.requests_ps:
         type: org.openecomp.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_server_oam_2:
+      disk.capacity_ps:
         type: org.openecomp.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_server_oam_1:
+      disk.device.latency_ps:
         type: org.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_server_oam_1:
+      network.incoming.bytes.rate_ps_pd02_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_server_ps_1_test_nested3Level:
+      disk.device.write.requests_ps:
         type: org.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_server_oam_2:
+      disk.write.bytes_ps:
         type: org.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_server_ps_1_test_nested3Level:
-        type: tosca.capabilities.Scalable
+  org.openecomp.resource.abstract.nodes.heat.nested3:
+    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+    properties:
+      p1:
+        type: string
+        description: UID of OAM network
+        required: true
+        status: SUPPORTED
+      p2:
+        type: string
+        description: UID of OAM network
+        required: true
+        status: SUPPORTED
+      ps_names:
+        type: list
+        description: CMAUI1, CMAUI2 server names
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      cmaui_image:
+        type: string
+        description: Image for CMAUI server
+        required: true
+        status: SUPPORTED
+      cmaui_flavor:
+        type: string
+        description: Flavor for CMAUI server
+        required: true
+        status: SUPPORTED
+      security_group_name:
+        type: list
+        description: CMAUI1, CMAUI2 server names
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      availability_zone_0:
+        type: string
+        description: availabilityzone name
+        required: true
+        status: SUPPORTED
+      cmaui_oam_ips:
+        type: string
+        required: true
+        status: SUPPORTED
+      net:
+        type: string
+        required: true
+        status: SUPPORTED
+    requirements:
+    - dependency_pd01_port_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd01_port_1:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
         occurrences:
         - 1
+        - 1
+    - dependency_pd02_port_2:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
         - UNBOUNDED
-      network.outgoing.packets.rate_pd02_port_2_test_nested3Level:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+    - link_pd02_port_2:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
         occurrences:
         - 1
+        - 1
+    - dependency_server_ps_2:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
         - UNBOUNDED
-      disk.read.bytes_server_oam_2:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+    - local_storage_server_ps_2:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_server_ps_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_server_ps_1:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    capabilities:
+      binding_server_ps_2:
+        type: tosca.capabilities.network.Bindable
         occurrences:
         - 1
         - UNBOUNDED
-      disk.read.bytes_server_oam_1:
+      instance_server_ps_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      network.outgoing.bytes_pd01_port_1_test_nested3Level:
+      instance_server_ps_1:
         type: org.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_server_ps_2_test_nested3Level:
+      binding_server_ps_1:
         type: tosca.capabilities.network.Bindable
         occurrences:
         - 1
         - UNBOUNDED
-      feature_pd02_port_2_test_nested3Level:
-        type: tosca.capabilities.Node
+      disk.device.usage_server_ps_1:
+        type: org.openecomp.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_server_oam_1:
+      disk.device.usage_server_ps_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.iops_server_ps_2_test_nested3Level:
+      disk.capacity_server_ps_1:
         type: org.openecomp.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_server_oam_1:
+      network.outgoing.bytes_pd02_port_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      binding_server_ps_1_test_nested3Level:
-        type: tosca.capabilities.network.Bindable
+      disk.capacity_server_ps_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.write.bytes.rate_server_oam_2:
+      network.outgoing.bytes_pd01_port_1:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      attachment_pd01_port_1_test_nested3Level:
-        type: tosca.capabilities.Attachment
+      memory.usage_server_ps_1:
+        type: org.openecomp.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_server_oam_2:
+      memory.usage_server_ps_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      memory_server_oam_1:
+      disk.write.requests.rate_server_ps_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      memory_server_oam_2:
+      disk.device.latency_server_ps_1:
         type: org.openecomp.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_server_oam_2:
+      disk.write.requests.rate_server_ps_1:
         type: org.openecomp.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_server_oam_1:
+      disk.device.latency_server_ps_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.usage_server_oam_2:
+      disk.device.write.requests_server_ps_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.usage_server_oam_1:
+      disk.device.write.requests_server_ps_1:
         type: org.openecomp.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_server_ps_1_test_nested3Level:
+      cpu_server_ps_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.read.bytes.rate_server_ps_1_test_nested3Level:
+      cpu_server_ps_1:
         type: org.openecomp.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_server_ps_2_test_nested3Level:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      os_server_ps_2:
+        type: tosca.capabilities.OperatingSystem
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.usage_server_ps_2_test_nested3Level:
+      os_server_ps_1:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.allocation_server_ps_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      feature_test_nested3Level:
-        type: tosca.capabilities.Node
+      endpoint_server_ps_2:
+        type: tosca.capabilities.Endpoint.Admin
         occurrences:
         - 1
         - UNBOUNDED
-      instance_server_ps_2_test_nested3Level:
+      disk.device.allocation_server_ps_1:
         type: org.openecomp.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_server_ps_1_test_nested3Level:
+      disk.read.bytes_server_ps_1:
         type: org.openecomp.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_server_ps_2_test_nested3Level:
+      disk.read.bytes_server_ps_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.capacity_server_oam_2:
+      disk.device.write.bytes_server_ps_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      network.outgoing.packets.rate_oam01_port_1:
+      disk.device.write.bytes_server_ps_1:
         type: org.openecomp.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_server_ps_1_test_nested3Level:
+      endpoint_server_ps_1:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_pd01_port_1:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.device.read.requests.rate_server_ps_1:
         type: org.openecomp.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_server_ps_2_test_nested3Level:
+      network.outgoing.bytes.rate_pd02_port_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      feature_oam02_port_2:
-        type: tosca.capabilities.Node
+      host_server_ps_2:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
         occurrences:
         - 1
         - UNBOUNDED
-      network.outgoing.bytes_oam01_port_1:
+      disk.device.capacity_server_ps_1:
         type: org.openecomp.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_oam02_port_2:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      host_server_ps_1:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
         occurrences:
         - 1
         - UNBOUNDED
-      network.incoming.packets_pd01_port_1_test_nested3Level:
+      disk.device.capacity_server_ps_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      cpu_util_server_oam_2:
+      disk.device.read.requests.rate_server_ps_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      binding_pd02_port_2_test_nested3Level:
-        type: tosca.capabilities.network.Bindable
-        valid_source_types:
-        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+      scalable_server_ps_1:
+        type: tosca.capabilities.Scalable
         occurrences:
-        - 0
+        - 1
         - UNBOUNDED
-      disk.device.allocation_server_ps_2_test_nested3Level:
+      network.incoming.packets.rate_pd02_port_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      feature_pd01_port_1_test_nested3Level:
-        type: tosca.capabilities.Node
+      scalable_server_ps_2:
+        type: tosca.capabilities.Scalable
         occurrences:
         - 1
         - UNBOUNDED
-      disk.iops_server_ps_1_test_nested3Level:
+      network.outgoing.packets.rate_pd01_port_1:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      vcpus_server_ps_2_test_nested3Level:
+      disk.write.bytes.rate_server_ps_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.capacity_server_oam_1:
+      disk.write.bytes.rate_server_ps_1:
         type: org.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_server_oam_1:
+      disk.device.write.requests.rate_server_ps_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.read.bytes_server_ps_1_test_nested3Level:
+      disk.device.write.requests.rate_server_ps_1:
         type: org.openecomp.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_server_ps_1_test_nested3Level:
+      memory.resident_server_ps_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-  org.openecomp.resource.abstract.nodes.ps:
-    derived_from: org.openecomp.resource.abstract.nodes.VFC
-    properties:
-      port_pd02_port_fixed_ips:
-        type: list
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
-      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_pd02_port_mac_requirements:
-        type: org.openecomp.datatypes.network.MacRequirements
-        required: true
-        status: SUPPORTED
-      vm_flavor_name:
-        type: string
-        required: true
-        status: SUPPORTED
-      port_pd02_port_order:
-        type: integer
-        required: true
-        status: SUPPORTED
-      port_pd02_port_subnetpoolid:
-        type: string
-        required: true
-        status: SUPPORTED
-      port_pd02_port_network_role_tag:
-        type: string
-        required: true
-        status: SUPPORTED
-      port_pd02_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_pd02_port_security_groups:
-        type: list
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: json
-      compute_ps_availability_zone:
-        type: list
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      port_pd02_port_replacement_policy:
-        type: list
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      port_pd02_port_network_role:
-        type: string
-        required: true
-        status: SUPPORTED
-      compute_ps_name:
-        type: list
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-      port_pd02_port_exCP_naming:
-        type: org.openecomp.datatypes.Naming
-        required: true
-        status: SUPPORTED
-      port_pd02_port_ip_requirements:
-        type: list
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: org.openecomp.datatypes.network.IpRequirements
-      port_pd02_port_network:
-        type: list
-        required: true
-        status: SUPPORTED
-        entry_schema:
-          type: string
-    requirements:
-    - dependency_ps:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - local_storage_ps:
-        capability: tosca.capabilities.Attachment
-        node: tosca.nodes.BlockStorage
-        relationship: tosca.relationships.AttachesTo
+      disk.ephemeral.size_server_ps_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
-        - 0
+        - 1
         - UNBOUNDED
-    - dependency_ps_pd02_port:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
+      feature_pd02_port_2:
+        type: tosca.capabilities.Node
         occurrences:
-        - 0
+        - 1
         - UNBOUNDED
-    - link_ps_pd02_port:
-        capability: tosca.capabilities.network.Linkable
-        relationship: tosca.relationships.network.LinksTo
+      disk.ephemeral.size_server_ps_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
-        - 1
-    capabilities:
-      disk.write.requests.rate_ps:
+        - UNBOUNDED
+      disk.write.bytes_server_ps_1:
         type: org.openecomp.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_ps:
+      disk.write.bytes_server_ps_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      scalable_ps:
-        type: tosca.capabilities.Scalable
+      disk.allocation_server_ps_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.write.requests_ps:
+      disk.allocation_server_ps_1:
         type: org.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_ps:
-        type: tosca.capabilities.Container
-        valid_source_types:
-        - tosca.nodes.SoftwareComponent
+      attachment_pd01_port_1:
+        type: tosca.capabilities.Attachment
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.allocation_ps:
+      memory.resident_server_ps_1:
         type: org.openecomp.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_ps:
+      disk.latency_server_ps_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      memory.resident_ps:
+      disk.read.requests_server_ps_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.usage_ps:
+      disk.read.requests_server_ps_1:
         type: org.openecomp.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_ps_pd02_port:
+      disk.device.read.requests_server_ps_1:
         type: org.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_ps:
-        type: tosca.capabilities.Endpoint.Admin
+      disk.device.read.requests_server_ps_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.capacity_ps:
+      network.incoming.bytes.rate_pd01_port_1:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      cpu_ps:
+      disk.read.bytes.rate_server_ps_1:
         type: org.openecomp.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_ps_pd02_port:
+      disk.read.bytes.rate_server_ps_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.write.bytes_ps:
+      disk.device.iops_server_ps_1:
         type: org.openecomp.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_ps_pd02_port:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      feature_pd01_port_1:
+        type: tosca.capabilities.Node
         occurrences:
         - 1
         - UNBOUNDED
-      cpu.delta_ps:
+      disk.device.iops_server_ps_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.root.size_ps:
+      cpu_util_server_ps_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.read.requests.rate_ps:
+      disk.iops_server_ps_1:
         type: org.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_ps:
-        type: tosca.capabilities.network.Bindable
+      cpu_util_server_ps_1:
+        type: org.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_ps_pd02_port:
-        type: tosca.capabilities.network.Bindable
-        valid_source_types:
-        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+      disk.iops_server_ps_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
-        - 0
+        - 1
         - UNBOUNDED
-      disk.device.write.requests.rate_ps:
+      disk.device.read.bytes.rate_server_ps_1:
         type: org.openecomp.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_ps_pd02_port:
+      disk.device.read.bytes.rate_server_ps_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      cpu_util_ps:
+      disk.latency_server_ps_1:
         type: org.openecomp.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_ps_pd02_port:
+      disk.root.size_server_ps_1:
         type: org.openecomp.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_ps_pd02_port:
+      attachment_pd02_port_2:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.root.size_server_ps_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      network.incoming.bytes_ps_pd02_port:
+      network.outgoing.bytes.rate_pd01_port_1:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.read.bytes.rate_ps:
+      binding_pd02_port_2:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      network.incoming.packets.rate_pd01_port_1:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.read.bytes.rate_ps:
+      disk.usage_server_ps_1:
         type: org.openecomp.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_ps:
+      network.outpoing.packets_pd01_port_1:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      vcpus_ps:
+      disk.usage_server_ps_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      instance_ps:
+      network.outpoing.packets_pd02_port_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.latency_ps:
+      network.incoming.bytes_pd01_port_1:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.read.bytes_ps:
+      network.incoming.bytes_pd02_port_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      memory.usage_ps:
+      network.outgoing.packets.rate_pd02_port_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      feature_ps:
-        type: tosca.capabilities.Node
+      vcpus_server_ps_1:
+        type: org.openecomp.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_ps:
+      vcpus_server_ps_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.ephemeral.size_ps:
+      network.incoming.packets_pd01_port_1:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      memory_ps:
+      network.incoming.packets_pd02_port_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      feature_ps_pd02_port:
-        type: tosca.capabilities.Node
+      disk.device.write.bytes.rate_server_ps_1:
+        type: org.openecomp.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_ps:
+      network.incoming.bytes.rate_pd02_port_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.write.bytes.rate_ps:
+      disk.write.requests_server_ps_1:
         type: org.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_ps:
-        type: tosca.capabilities.OperatingSystem
+      disk.write.requests_server_ps_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.iops_ps:
+      disk.device.write.bytes.rate_server_ps_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.allocation_ps:
+      memory_server_ps_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      attachment_ps_pd02_port:
-        type: tosca.capabilities.Attachment
+      disk.device.read.bytes_server_ps_1:
+        type: org.openecomp.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_ps:
+      disk.device.read.bytes_server_ps_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.capacity_ps:
+      memory_server_ps_1:
         type: org.openecomp.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_ps:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      feature_server_ps_2:
+        type: tosca.capabilities.Node
         occurrences:
         - 1
         - UNBOUNDED
-      network.incoming.bytes.rate_ps_pd02_port:
+      cpu.delta_server_ps_1:
         type: org.openecomp.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_ps:
+      cpu.delta_server_ps_2:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.write.bytes_ps:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      feature_server_ps_1:
+        type: tosca.capabilities.Node
         occurrences:
         - 1
         - UNBOUNDED
-  org.openecomp.resource.abstract.nodes.heat.nested3:
-    derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
+  org.openecomp.resource.abstract.nodes.oam:
+    derived_from: org.openecomp.resource.abstract.nodes.VFC
     properties:
-      p1:
-        type: string
-        description: UID of OAM network
+      port_oam02_port_network:
+        type: list
         required: true
         status: SUPPORTED
-      p2:
+        entry_schema:
+          type: string
+      port_oam02_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_oam02_port_network_role:
         type: string
-        description: UID of OAM network
         required: true
         status: SUPPORTED
-      ps_names:
+      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_oam02_port_fixed_ips:
         type: list
-        description: CMAUI1, CMAUI2 server names
         required: true
         status: SUPPORTED
         entry_schema:
-          type: string
-      cmaui_image:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      vm_flavor_name:
         type: string
-        description: Image for CMAUI server
         required: true
         status: SUPPORTED
-      cmaui_flavor:
-        type: string
-        description: Flavor for CMAUI server
+      port_oam02_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
         required: true
         status: SUPPORTED
-      security_group_name:
+      port_oam02_port_security_groups:
         type: list
-        description: CMAUI1, CMAUI2 server names
         required: true
         status: SUPPORTED
         entry_schema:
-          type: string
-      availability_zone_0:
+          type: json
+      port_oam02_port_subnetpoolid:
         type: string
-        description: availabilityzone name
         required: true
         status: SUPPORTED
-      cmaui_oam_ips:
+      port_oam02_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_oam02_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      vm_image_name:
         type: string
         required: true
         status: SUPPORTED
-      net:
+      port_oam02_port_network_role_tag:
         type: string
         required: true
         status: SUPPORTED
+      port_oam02_port_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      compute_oam_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_oam02_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      compute_oam_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
     requirements:
-    - dependency_pd01_port_1:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - link_pd01_port_1:
-        capability: tosca.capabilities.network.Linkable
-        relationship: tosca.relationships.network.LinksTo
-        occurrences:
-        - 1
-        - 1
-    - dependency_pd02_port_2:
+    - dependency_oam_oam02_port:
         capability: tosca.capabilities.Node
         node: tosca.nodes.Root
         relationship: tosca.relationships.DependsOn
         occurrences:
         - 0
         - UNBOUNDED
-    - link_pd02_port_2:
+    - link_oam_oam02_port:
         capability: tosca.capabilities.network.Linkable
         relationship: tosca.relationships.network.LinksTo
         occurrences:
         - 1
         - 1
-    - dependency_server_ps_2:
-        capability: tosca.capabilities.Node
-        node: tosca.nodes.Root
-        relationship: tosca.relationships.DependsOn
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - local_storage_server_ps_2:
-        capability: tosca.capabilities.Attachment
-        node: tosca.nodes.BlockStorage
-        relationship: tosca.relationships.AttachesTo
-        occurrences:
-        - 0
-        - UNBOUNDED
-    - dependency_server_ps_1:
+    - dependency_oam:
         capability: tosca.capabilities.Node
         node: tosca.nodes.Root
         relationship: tosca.relationships.DependsOn
         occurrences:
         - 0
         - UNBOUNDED
-    - local_storage_server_ps_1:
+    - local_storage_oam:
         capability: tosca.capabilities.Attachment
         node: tosca.nodes.BlockStorage
         relationship: tosca.relationships.AttachesTo
@@ -6983,617 +6942,1010 @@ node_types:
         - 0
         - UNBOUNDED
     capabilities:
-      binding_server_ps_2:
-        type: tosca.capabilities.network.Bindable
+      cpu_oam:
+        type: org.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_server_ps_2:
+      network.incoming.bytes.rate_oam_oam02_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_server_ps_1:
+      disk.usage_oam:
         type: org.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_server_ps_1:
-        type: tosca.capabilities.network.Bindable
+      memory.resident_oam:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.usage_server_ps_1:
+      disk.device.write.bytes_oam:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.usage_server_ps_2:
+      network.incoming.packets_oam_oam02_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.capacity_server_ps_1:
+      disk.read.bytes_oam:
         type: org.openecomp.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_pd02_port_2:
+      network.outgoing.packets.rate_oam_oam02_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.capacity_server_ps_2:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      binding_oam_oam02_port:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      scalable_oam:
+        type: tosca.capabilities.Scalable
         occurrences:
         - 1
         - UNBOUNDED
-      network.outgoing.bytes_pd01_port_1:
+      network.outgoing.bytes.rate_oam_oam02_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.usage_server_ps_1:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      feature_oam:
+        type: tosca.capabilities.Node
         occurrences:
         - 1
         - UNBOUNDED
-      memory.usage_server_ps_2:
+      disk.allocation_oam:
         type: org.openecomp.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_server_ps_2:
+      disk.device.usage_oam:
         type: org.openecomp.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_server_ps_1:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      binding_oam:
+        type: tosca.capabilities.network.Bindable
         occurrences:
         - 1
         - UNBOUNDED
-      disk.write.requests.rate_server_ps_1:
+      disk.device.read.bytes.rate_oam:
         type: org.openecomp.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_server_ps_2:
+      disk.write.bytes.rate_oam:
         type: org.openecomp.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_server_ps_2:
+      disk.device.write.bytes.rate_oam:
         type: org.openecomp.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_server_ps_1:
+      disk.device.allocation_oam:
         type: org.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_server_ps_2:
+      disk.ephemeral.size_oam:
         type: org.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_server_ps_1:
+      disk.write.requests_oam:
         type: org.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_server_ps_2:
-        type: tosca.capabilities.OperatingSystem
+      disk.capacity_oam:
+        type: org.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_server_ps_1:
-        type: tosca.capabilities.OperatingSystem
+      instance_oam:
+        type: org.openecomp.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_server_ps_2:
+      network.outgoing.bytes_oam_oam02_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_server_ps_2:
-        type: tosca.capabilities.Endpoint.Admin
+      disk.root.size_oam:
+        type: org.openecomp.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_server_ps_1:
+      network.incoming.packets.rate_oam_oam02_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_server_ps_1:
+      memory_oam:
         type: org.openecomp.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_server_ps_2:
+      cpu.delta_oam:
         type: org.openecomp.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_server_ps_2:
+      disk.device.write.requests_oam:
         type: org.openecomp.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_server_ps_1:
+      disk.device.read.requests.rate_oam:
         type: org.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_server_ps_1:
-        type: tosca.capabilities.Endpoint.Admin
+      disk.write.requests.rate_oam:
+        type: org.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_pd01_port_1:
-        type: tosca.capabilities.network.Bindable
-        valid_source_types:
-        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-        occurrences:
-        - 0
-        - UNBOUNDED
-      disk.device.read.requests.rate_server_ps_1:
+      disk.device.latency_oam:
         type: org.openecomp.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_pd02_port_2:
+      disk.device.iops_oam:
         type: org.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_server_ps_2:
-        type: tosca.capabilities.Container
-        valid_source_types:
-        - tosca.nodes.SoftwareComponent
+      vcpus_oam:
+        type: org.openecomp.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_server_ps_1:
+      disk.device.write.requests.rate_oam:
         type: org.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_server_ps_1:
+      disk.device.read.bytes_oam:
+        type: org.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_oam:
         type: tosca.capabilities.Container
         valid_source_types:
         - tosca.nodes.SoftwareComponent
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.capacity_server_ps_2:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      endpoint_oam:
+        type: tosca.capabilities.Endpoint.Admin
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.read.requests.rate_server_ps_2:
+      disk.device.read.requests_oam:
         type: org.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_server_ps_1:
-        type: tosca.capabilities.Scalable
-        occurrences:
-        - 1
-        - UNBOUNDED
-      network.incoming.packets.rate_pd02_port_2:
+      disk.iops_oam:
         type: org.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_server_ps_2:
-        type: tosca.capabilities.Scalable
+      disk.read.bytes.rate_oam:
+        type: org.openecomp.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_pd01_port_1:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      feature_oam_oam02_port:
+        type: tosca.capabilities.Node
         occurrences:
         - 1
         - UNBOUNDED
-      disk.write.bytes.rate_server_ps_2:
+      cpu_util_oam:
         type: org.openecomp.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_server_ps_1:
+      network.outpoing.packets_oam_oam02_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_server_ps_2:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      os_oam:
+        type: tosca.capabilities.OperatingSystem
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.write.requests.rate_server_ps_1:
+      memory.usage_oam:
         type: org.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_server_ps_2:
+      disk.latency_oam:
         type: org.openecomp.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_server_ps_1:
+      network.incoming.bytes_oam_oam02_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_pd02_port_2:
-        type: tosca.capabilities.Node
+      attachment_oam_oam02_port:
+        type: tosca.capabilities.Attachment
         occurrences:
         - 1
         - UNBOUNDED
-      disk.ephemeral.size_server_ps_2:
+      disk.write.bytes_oam:
         type: org.openecomp.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_server_ps_1:
+      disk.read.requests_oam:
         type: org.openecomp.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_server_ps_2:
+      disk.device.capacity_oam:
         type: org.openecomp.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_server_ps_2:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+  org.openecomp.resource.abstract.nodes.cmaui:
+    derived_from: org.openecomp.resource.abstract.nodes.VFC
+    properties:
+      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_cmaui02_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_cmaui02_port_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      port_cmaui02_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      compute_cmaui_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cmaui02_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      compute_cmaui_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cmaui02_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_cmaui02_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_cmaui02_port_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cmaui02_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cmaui02_port_security_groups:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_cmaui02_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cmaui02_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cmaui02_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+    requirements:
+    - dependency_cmaui_cmaui02_port:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
         occurrences:
-        - 1
+        - 0
         - UNBOUNDED
-      disk.allocation_server_ps_1:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+    - link_cmaui_cmaui02_port:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
         occurrences:
         - 1
-        - UNBOUNDED
-      attachment_pd01_port_1:
-        type: tosca.capabilities.Attachment
-        occurrences:
         - 1
+    - dependency_cmaui:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
         - UNBOUNDED
-      memory.resident_server_ps_1:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+    - local_storage_cmaui:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
         occurrences:
-        - 1
+        - 0
         - UNBOUNDED
-      disk.latency_server_ps_2:
+    capabilities:
+      network.incoming.bytes_cmaui_cmaui02_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.requests_server_ps_2:
+      disk.read.bytes.rate_cmaui:
         type: org.openecomp.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_server_ps_1:
+      disk.ephemeral.size_cmaui:
         type: org.openecomp.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_server_ps_1:
+      disk.device.write.bytes_cmaui:
         type: org.openecomp.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_server_ps_2:
+      disk.device.iops_cmaui:
         type: org.openecomp.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_pd01_port_1:
+      memory.resident_cmaui:
         type: org.openecomp.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_server_ps_1:
+      disk.write.bytes.rate_cmaui:
         type: org.openecomp.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_server_ps_2:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      host_cmaui:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.iops_server_ps_1:
+      disk.device.allocation_cmaui:
         type: org.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_pd01_port_1:
+      feature_cmaui_cmaui02_port:
         type: tosca.capabilities.Node
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.iops_server_ps_2:
+      disk.read.bytes_cmaui:
         type: org.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_server_ps_2:
+      disk.write.requests_cmaui:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.iops_server_ps_1:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      scalable_cmaui:
+        type: tosca.capabilities.Scalable
         occurrences:
         - 1
         - UNBOUNDED
-      cpu_util_server_ps_1:
+      disk.device.write.bytes.rate_cmaui:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.iops_server_ps_2:
+      cpu.delta_cmaui:
         type: org.openecomp.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_server_ps_1:
+      disk.root.size_cmaui:
         type: org.openecomp.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_server_ps_2:
+      memory.usage_cmaui:
         type: org.openecomp.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_server_ps_1:
+      os_cmaui:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes.rate_cmaui:
         type: org.openecomp.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_server_ps_1:
+      network.incoming.packets.rate_cmaui_cmaui02_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
-      attachment_pd02_port_2:
-        type: tosca.capabilities.Attachment
+      binding_cmaui_cmaui02_port:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
         occurrences:
-        - 1
+        - 0
         - UNBOUNDED
-      disk.root.size_server_ps_2:
+      disk.device.usage_cmaui:
         type: org.openecomp.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_pd01_port_1:
+      disk.iops_cmaui:
         type: org.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_pd02_port_2:
-        type: tosca.capabilities.network.Bindable
-        valid_source_types:
-        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
-        occurrences:
-        - 0
-        - UNBOUNDED
-      network.incoming.packets.rate_pd01_port_1:
+      disk.device.latency_cmaui:
         type: org.openecomp.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_server_ps_1:
+      disk.device.read.requests_cmaui:
         type: org.openecomp.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_pd01_port_1:
+      disk.capacity_cmaui:
         type: org.openecomp.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_server_ps_2:
+      cpu_cmaui:
         type: org.openecomp.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_pd02_port_2:
+      network.outgoing.packets.rate_cmaui_cmaui02_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_pd01_port_1:
+      disk.read.requests_cmaui:
         type: org.openecomp.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_pd02_port_2:
+      disk.device.read.bytes_cmaui:
         type: org.openecomp.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_pd02_port_2:
+      disk.device.write.requests_cmaui:
         type: org.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_server_ps_1:
+      vcpus_cmaui:
         type: org.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_server_ps_2:
+      feature_cmaui:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_cmaui_cmaui02_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_pd01_port_1:
+      binding_cmaui:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_cmaui_cmaui02_port:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      endpoint_cmaui:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.capacity_cmaui:
         type: org.openecomp.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_pd02_port_2:
+      disk.device.read.requests.rate_cmaui:
         type: org.openecomp.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_server_ps_1:
+      memory_cmaui:
         type: org.openecomp.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_pd02_port_2:
+      disk.write.requests.rate_cmaui:
         type: org.openecomp.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_server_ps_1:
+      network.outgoing.bytes_cmaui_cmaui02_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.requests_server_ps_2:
+      disk.usage_cmaui:
         type: org.openecomp.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_server_ps_2:
+      disk.latency_cmaui:
         type: org.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_server_ps_2:
+      network.outgoing.bytes.rate_cmaui_cmaui02_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_server_ps_1:
+      instance_cmaui:
         type: org.openecomp.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_server_ps_2:
+      disk.allocation_cmaui:
         type: org.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_server_ps_1:
+      network.incoming.bytes.rate_cmaui_cmaui02_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_server_ps_2:
-        type: tosca.capabilities.Node
+      disk.write.bytes_cmaui:
+        type: org.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_server_ps_1:
+      cpu_util_cmaui:
         type: org.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_server_ps_2:
+      network.outpoing.packets_cmaui_cmaui02_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_server_ps_1:
-        type: tosca.capabilities.Node
+      disk.device.write.requests.rate_cmaui:
+        type: org.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.vfc.nodes.heat.cmaui:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      port_cmaui01_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cmaui01_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_cmaui01_port_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      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_cmaui01_port_security_groups:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      compute_cmaui_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cmaui01_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      compute_cmaui_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cmaui01_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cmaui01_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cmaui01_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_cmaui01_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_cmaui01_port_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      port_cmaui01_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cmaui01_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+  org.openecomp.resource.vfc.nodes.heat.ps:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      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_pd01_port_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_security_groups:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_pd01_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      compute_ps_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      port_pd01_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_pd01_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      compute_ps_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_pd01_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+  org.openecomp.resource.vfc.nodes.heat.oam:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      port_oam01_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_oam01_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_oam01_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_oam01_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_oam01_port_security_groups:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_oam01_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      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_oam01_port_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_oam01_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_oam01_port_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      port_oam01_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      compute_oam_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_oam01_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      compute_oam_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_oam01_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
\ No newline at end of file
index eba51d8..576a2f4 100644 (file)
@@ -420,6 +420,85 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
+  org.openecomp.resource.vfc.nodes.heat.pd_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      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
+      compute_pd_server_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      compute_pd_server_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_pd01_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd01_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_pd01_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd01_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      compute_pd_server_user_data_format:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
   org.openecomp.resource.abstract.nodes.pd_server_5:
     derived_from: org.openecomp.resource.abstract.nodes.VFC
     properties:
@@ -7524,4 +7603,4 @@ node_types:
         type: tosca.capabilities.OperatingSystem
         occurrences:
         - 1
-        - UNBOUNDED
+        - UNBOUNDED
\ No newline at end of file
index 8ba567d..164c5ae 100644 (file)
@@ -5,6 +5,821 @@ imports:
 - openecomp_heat_index:
     file: openecomp-heat/_index.yml
 node_types:
+  org.openecomp.resource.vfc.nodes.heat.rd_server_1b:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      port_ps_server_b_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_ps_server_b_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_ps_server_b_port_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      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
+      compute_rd_server_1b_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_ps_server_b_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_ps_server_b_port_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_ps_server_b_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_ps_server_b_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_ps_server_b_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_ps_server_b_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_ps_server_b_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      compute_rd_server_1b_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_ps_server_b_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+  org.openecomp.resource.vfc.nodes.heat.osm_server_1c2:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      port_osm_port_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_osm_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_osm_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      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_osm_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      compute_osm_server_1c2_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_osm_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_osm_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_osm_port_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      port_osm_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_osm_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_osm_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_osm_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      compute_osm_server_1c2_metadata:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      compute_osm_server_1c2_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+    attributes:
+      osm_server_1c2_accessIPv4:
+        type: string
+        status: SUPPORTED
+  org.openecomp.resource.vfc.nodes.heat.pd_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      p1:
+        type: string
+        description: UID of OAM network
+        required: true
+        status: SUPPORTED
+      p2:
+        type: string
+        description: UID of OAM network
+        required: true
+        status: SUPPORTED
+      port_pd_server_port_1_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      pd_server_names:
+        type: list
+        description: PD server names
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd_server_port_1_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_pd_server_port_2_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd_server_port_1_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      pd_server_flavor:
+        type: string
+        description: Flavor for PD server
+        required: true
+        status: SUPPORTED
+      port_pd_server_port_2_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_pd_server_port_2_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      availability_zone_0:
+        type: string
+        description: availabilityzone name
+        required: true
+        status: SUPPORTED
+      net:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd_server_port_2_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_pd_server_port_2_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      pd_server_ips:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd_server_port_1_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd_server_port_1_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      security_group_name:
+        type: list
+        description: CMAUI1, CMAUI2 server names
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      ps_server_flavor:
+        type: string
+        description: Flavor for PS server
+        required: true
+        status: SUPPORTED
+      port_pd_server_port_1_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_pd_server_port_2_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_pd_server_port_2_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      pd_server_image:
+        type: string
+        description: Flavor for PD server
+        required: true
+        status: SUPPORTED
+      port_pd_server_port_1_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_pd_server_port_2_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_pd_server_port_1_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+    attributes:
+      pattern4_attr_1:
+        type: string
+        description: pattern4_attr_1_value
+        status: SUPPORTED
+    requirements:
+    - dependency_pd_server_port_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd_server_port_1:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_pd_server_port_2:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pd_server_port_2:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_server_pd:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_server_pd:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    capabilities:
+      disk.iops_server_pd:
+        type: org.openecomp.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_server_pd:
+        type: org.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_server_pd:
+        type: org.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_server_pd:
+        type: org.openecomp.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_pd_server_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_pd_server_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests_server_pd:
+        type: org.openecomp.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_pd_server_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_pd_server_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.allocation_server_pd:
+        type: org.openecomp.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_server_pd:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_server_pd:
+        type: org.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_server_pd:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.capacity_server_pd:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_pd_server_port_2:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_pd_server_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_pd_server_port_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_pd_server_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.usage_server_pd:
+        type: org.openecomp.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_server_pd:
+        type: org.openecomp.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_server_pd:
+        type: org.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_server_pd:
+        type: org.openecomp.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_server_pd:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.usage_server_pd:
+        type: org.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_pd_server_port_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pd_server_port_2:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes_server_pd:
+        type: org.openecomp.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_server_pd:
+        type: org.openecomp.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_pd_server_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_pd_server_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      instance_server_pd:
+        type: org.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_pd_server_port_2:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      binding_pd_server_port_1:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      cpu.delta_server_pd:
+        type: org.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_server_pd:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_pd_server_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      vcpus_server_pd:
+        type: org.openecomp.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_server_pd:
+        type: org.openecomp.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_pd_server_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_pd_server_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.latency_server_pd:
+        type: org.openecomp.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_pd_server_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes.rate_server_pd:
+        type: org.openecomp.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_server_pd:
+        type: org.openecomp.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_server_pd:
+        type: org.openecomp.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_pd_server_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.iops_server_pd:
+        type: org.openecomp.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_pd_server_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.requests_server_pd:
+        type: org.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_server_pd:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.latency_server_pd:
+        type: org.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_server_pd:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      scalable_server_pd:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_pd_server_port_2:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_pd_server_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes_server_pd:
+        type: org.openecomp.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_server_pd:
+        type: org.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_server_pd:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.root.size_server_pd:
+        type: org.openecomp.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_server_pd:
+        type: org.openecomp.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_server_pd:
+        type: org.openecomp.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_server_pd:
+        type: org.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_server_pd:
+        type: org.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.vfc.nodes.heat.BE_1c1:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      port_BE_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_BE_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      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_BE_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_BE_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_BE_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_BE_port_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      port_BE_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      compute_BE_1c1_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_BE_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_BE_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_BE_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      compute_BE_1c1_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_BE_port_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+    attributes:
+      BE_1c1_accessIPv4:
+        type: string
+        status: SUPPORTED
   org.openecomp.resource.abstract.nodes.pd_server_1b_1:
     derived_from: org.openecomp.resource.abstract.nodes.VFC
     properties:
@@ -1292,6 +2107,101 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
+  org.openecomp.resource.vfc.nodes.heat.oam_server_1c2:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      port_oam_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      compute_oam_server_1c2_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      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_oam_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_oam_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_oam_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_oam_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      compute_oam_server_1c2_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_oam_port_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      compute_oam_server_1c2_metadata:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_oam_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_oam_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_oam_port_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_oam_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_oam_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+    attributes:
+      oam_server_1c2_accessIPv4:
+        type: string
+        status: SUPPORTED
   org.openecomp.resource.abstract.nodes.heat.pd_server:
     derived_from: org.openecomp.resource.abstract.nodes.VFC
     properties:
@@ -2259,6 +3169,184 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
+  org.openecomp.resource.vfc.nodes.heat.pd_server_1b:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      compute_pd_server_1b_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd_server_b_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      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
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd_server_b_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_pd_server_b_port_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      port_pd_server_b_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd_server_b_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_pd_server_b_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd_server_b_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd_server_b_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd_server_b_port_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      compute_pd_server_1b_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd_server_b_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_pd_server_b_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+    attributes:
+      pd_server_1b_accessIPv4:
+        type: string
+        status: SUPPORTED
+  org.openecomp.resource.vfc.nodes.heat.cmaui_1c1:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      port_cmaui_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_cmaui_port_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      port_cmaui_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      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
+      compute_cmaui_1c1_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cmaui_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cmaui_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      compute_cmaui_1c1_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cmaui_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+    attributes:
+      cmaui_1c1_accessIPv4:
+        type: string
+        status: SUPPORTED
   org.openecomp.resource.abstract.nodes.BE_1c1:
     derived_from: org.openecomp.resource.abstract.nodes.VFC
     properties:
@@ -7899,4 +8987,4 @@ node_types:
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
-        - UNBOUNDED
+        - UNBOUNDED
\ No newline at end of file
index 04be425..f272e87 100644 (file)
@@ -258,29 +258,6 @@ topology_template:
         port_pd_server_port_1_mac_requirements:
           mac_count_required:
             is_required: false
-      requirements:
-      - dependency_pd_server_port_1:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pd_server_port_1:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
-      - dependency_pd_server_port_2:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pd_server_port_2:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
-      - dependency_server_pd:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_server_pd:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
     test_nested_no_compute:
       type: org.openecomp.resource.abstract.nodes.heat.nested-no-compute
       directives:
@@ -328,29 +305,6 @@ topology_template:
         port_pd_server_port_1_mac_requirements:
           mac_count_required:
             is_required: false
-      requirements:
-      - dependency_pd_server_port_1:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pd_server_port_1:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
-      - dependency_pd_server_port_2:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pd_server_port_2:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
-      - dependency_server_pd:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_server_pd:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
     packet_external_network:
       type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
       properties:
index 049d11d..fd0e219 100644 (file)
@@ -242,29 +242,6 @@ topology_template:
         port_pd_server_port_1_mac_requirements:
           mac_count_required:
             is_required: false
-      requirements:
-      - dependency_pd_server_port_1:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pd_server_port_1:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
-      - dependency_pd_server_port_2:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pd_server_port_2:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
-      - dependency_server_pd:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_server_pd:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
     abstract_pd_server_1b:
       type: org.openecomp.resource.abstract.nodes.pd_server_1b
       directives:
index ef3fc1a..df3f7a3 100644 (file)
@@ -5,6 +5,91 @@ imports:
 - openecomp_heat_index:
     file: openecomp-heat/_index.yml
 node_types:
+  org.openecomp.resource.vfc.nodes.heat.ps_server_1b:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      port_ps_server_b_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_ps_server_b_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_ps_server_b_port_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      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_ps_server_b_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_ps_server_b_port_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_ps_server_b_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_ps_server_b_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_ps_server_b_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_ps_server_b_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_ps_server_b_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_ps_server_b_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      compute_ps_server_1b_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      compute_ps_server_1b_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
   org.openecomp.resource.abstract.nodes.oam_server_1c2:
     derived_from: org.openecomp.resource.abstract.nodes.VFC
     properties:
@@ -426,6 +511,91 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
+  org.openecomp.resource.vfc.nodes.heat.oam_server_1c2:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      port_oam_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      compute_oam_server_1c2_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      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_oam_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_oam_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_oam_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_oam_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      compute_oam_server_1c2_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_oam_port_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_oam_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_oam_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_oam_port_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_oam_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_oam_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
   org.openecomp.resource.abstract.nodes.pd_server_1b:
     derived_from: org.openecomp.resource.abstract.nodes.VFC
     properties:
@@ -847,6 +1017,176 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
+  org.openecomp.resource.vfc.nodes.heat.pd_server_1b:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      compute_pd_server_1b_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd_server_b_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      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
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd_server_b_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_pd_server_b_port_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      port_pd_server_b_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd_server_b_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_pd_server_b_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd_server_b_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd_server_b_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd_server_b_port_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      compute_pd_server_1b_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd_server_b_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_pd_server_b_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+  org.openecomp.resource.vfc.nodes.heat.cmaui_1c1:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      port_cmaui_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_cmaui_port_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      port_cmaui_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      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
+      compute_cmaui_1c1_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cmaui_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cmaui_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      compute_cmaui_1c1_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cmaui_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
   org.openecomp.resource.abstract.nodes.heat.nested1:
     derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
     properties:
@@ -3841,4 +4181,4 @@ node_types:
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
-        - UNBOUNDED
+        - UNBOUNDED
\ No newline at end of file
index 4b52dd0..1602a81 100644 (file)
@@ -61,29 +61,6 @@ topology_template:
         port_pd_server_port_1_mac_requirements:
           mac_count_required:
             is_required: false
-      requirements:
-      - dependency_pd_server_port_1:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pd_server_port_1:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
-      - dependency_pd_server_port_2:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pd_server_port_2:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
-      - dependency_server_pd:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_server_pd:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
     test_nested_no_compute:
       type: org.openecomp.resource.abstract.nodes.heat.nested-no-compute
       directives:
index 8fe327f..6d6a5de 100644 (file)
@@ -426,6 +426,91 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
+  org.openecomp.resource.vfc.nodes.heat.cmaui:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      port_cmaui_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_cmaui_port_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      port_cmaui_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      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_cmaui_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      compute_cmaui_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cmaui_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      compute_cmaui_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cmaui_port_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cmaui_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_cmaui_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
   org.openecomp.resource.abstract.nodes.heat.nested1:
     derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
     properties:
@@ -1195,4 +1280,4 @@ node_types:
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
-        - UNBOUNDED
+        - UNBOUNDED
\ No newline at end of file
index 3113acf..732e000 100644 (file)
@@ -426,6 +426,91 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
+  org.openecomp.resource.vfc.nodes.heat.cmaui:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      port_cmaui_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_cmaui_port_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      port_cmaui_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      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_cmaui_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      compute_cmaui_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cmaui_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      compute_cmaui_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cmaui_port_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cmaui_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_cmaui_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
   org.openecomp.resource.abstract.nodes.heat.nested1:
     derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
     properties:
@@ -1145,4 +1230,4 @@ node_types:
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
-        - UNBOUNDED
+        - UNBOUNDED
\ No newline at end of file
index d51e4f4..75d9aef 100644 (file)
@@ -5,6 +5,91 @@ imports:
 - openecomp_heat_index:
     file: openecomp-heat/_index.yml
 node_types:
+  org.openecomp.resource.vfc.nodes.heat.pd_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      port_pd_server_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_pd_server_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      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
+      compute_pd_server_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      compute_pd_server_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd_server_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd_server_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd_server_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_pd_server_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd_server_port_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd_server_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_pd_server_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_pd_server_port_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd_server_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
   org.openecomp.resource.abstract.nodes.pd_server:
     derived_from: org.openecomp.resource.abstract.nodes.VFC
     properties:
@@ -426,6 +511,91 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
+  org.openecomp.resource.vfc.nodes.heat.ps_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      port_ps_server_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      compute_ps_server_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_ps_server_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      compute_ps_server_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_ps_server_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      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_ps_server_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_ps_server_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_ps_server_port_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_ps_server_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_ps_server_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_ps_server_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_ps_server_port_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_ps_server_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
   org.openecomp.resource.abstract.nodes.heat.nested1:
     derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
     properties:
@@ -1587,4 +1757,4 @@ node_types:
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
-        - UNBOUNDED
+        - UNBOUNDED
\ No newline at end of file
index b5dc2d9..34c5eef 100644 (file)
@@ -5,6 +5,91 @@ imports:
 - openecomp_heat_index:
     file: openecomp-heat/_index.yml
 node_types:
+  org.openecomp.resource.vfc.nodes.heat.pd_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      port_pd_server_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_pd_server_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      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
+      compute_pd_server_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      compute_pd_server_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd_server_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd_server_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd_server_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_pd_server_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd_server_port_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd_server_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_pd_server_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_pd_server_port_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd_server_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
   org.openecomp.resource.abstract.nodes.pd_server:
     derived_from: org.openecomp.resource.abstract.nodes.VFC
     properties:
@@ -1918,6 +2003,176 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
+  org.openecomp.resource.vfc.nodes.heat.ps_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      port_ps_server_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      compute_ps_server_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_ps_server_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      compute_ps_server_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_ps_server_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      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_ps_server_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_ps_server_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_ps_server_port_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_ps_server_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_ps_server_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_ps_server_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_ps_server_port_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_ps_server_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+  org.openecomp.resource.vfc.nodes.heat.sm_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      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_sm_server_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_sm_server_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_sm_server_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_sm_server_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_sm_server_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_sm_server_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_sm_server_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      compute_sm_server_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_sm_server_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      compute_sm_server_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_sm_server_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_sm_server_port_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_sm_server_port_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
   org.openecomp.resource.abstract.nodes.oam_server:
     derived_from: org.openecomp.resource.abstract.nodes.VFC
     properties:
@@ -3181,3 +3436,88 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
+  org.openecomp.resource.vfc.nodes.heat.oam_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      port_oam_server_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_oam_server_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      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_oam_server_port_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_oam_server_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_oam_server_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      compute_oam_server_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_oam_server_port_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      port_oam_server_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_oam_server_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_oam_server_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_oam_server_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      compute_oam_server_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_oam_server_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
\ No newline at end of file
index 9c2d3e6..1c8f548 100644 (file)
@@ -5,6 +5,97 @@ imports:
 - openecomp_heat_index:
     file: openecomp-heat/_index.yml
 node_types:
+  org.openecomp.resource.vfc.nodes.heat.pd_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      port_pd_server_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_pd_server_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      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_pd_server_port_security_groups:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      compute_pd_server_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      compute_pd_server_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd_server_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd_server_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd_server_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_pd_server_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd_server_port_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pd_server_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_pd_server_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_pd_server_port_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pd_server_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
   org.openecomp.resource.abstract.nodes.pd_server:
     derived_from: org.openecomp.resource.abstract.nodes.VFC
     properties:
@@ -1924,6 +2015,188 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
+  org.openecomp.resource.vfc.nodes.heat.ps_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      port_ps_server_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      compute_ps_server_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_ps_server_port_security_groups:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_ps_server_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      compute_ps_server_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_ps_server_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      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_ps_server_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_ps_server_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_ps_server_port_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_ps_server_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_ps_server_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_ps_server_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_ps_server_port_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_ps_server_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+  org.openecomp.resource.vfc.nodes.heat.sm_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      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_sm_server_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_sm_server_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_sm_server_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_sm_server_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_sm_server_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_sm_server_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_sm_server_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      compute_sm_server_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_sm_server_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      compute_sm_server_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_sm_server_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_sm_server_port_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_sm_server_port_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      port_sm_server_port_security_groups:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
   org.openecomp.resource.abstract.nodes.oam_server:
     derived_from: org.openecomp.resource.abstract.nodes.VFC
     properties:
@@ -3205,3 +3478,94 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
+  org.openecomp.resource.vfc.nodes.heat.oam_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      port_oam_server_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_oam_server_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      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_oam_server_port_security_groups:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_oam_server_port_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_oam_server_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_oam_server_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      compute_oam_server_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_oam_server_port_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      port_oam_server_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_oam_server_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_oam_server_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_oam_server_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      compute_oam_server_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_oam_server_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
\ No newline at end of file
index ccafac7..f57796a 100644 (file)
@@ -91,29 +91,6 @@ topology_template:
           get_input:
           - pcm_server_names
           - 0
-      requirements:
-      - dependency_pcm_port_1:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_port_1:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
-      - dependency_server_pcm:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_server_pcm:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
-      - dependency_pcm_port_0:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_port_0:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
     server_pcm_001:
       type: org.openecomp.resource.abstract.nodes.heat.pcm_server_1
       directives:
@@ -151,29 +128,6 @@ topology_template:
           get_input:
           - pcm_server_names
           - 0
-      requirements:
-      - dependency_pcm_port_1:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_port_1:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
-      - dependency_server_pcm:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_server_pcm:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
-      - dependency_pcm_port_0:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_port_0:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
     compute_port_0:
       type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
       properties:
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/duplicateReqs/in/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/duplicateReqs/in/MANIFEST.json
new file mode 100644 (file)
index 0000000..b15ef7c
--- /dev/null
@@ -0,0 +1,36 @@
+{
+  "name": "shlomi_5068",
+  "description": "shlomi_5068",
+  "version": "1.0",
+  "data": [
+    {
+      "isBase": true,
+      "file": "base_cscf.yaml",
+      "type": "HEAT",
+      "data": [
+        {
+          "file": "base_cscf.env",
+          "type": "HEAT_ENV"
+        },
+        {
+          "file": "base_cscf_volume.yaml",
+          "type": "HEAT_VOL",
+          "data": [
+            {
+              "file": "base_cscf_volume.env",
+              "type": "HEAT_ENV"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "file": "nested_tdcore.yaml",
+      "type": "HEAT"
+    },
+    {
+      "file": "nested_cscf.yaml",
+      "type": "HEAT"
+    }
+  ]
+}
\ 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/nestedSingleCompute/duplicateReqs/in/base_cscf.env b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/duplicateReqs/in/base_cscf.env
new file mode 100644 (file)
index 0000000..5439cc5
--- /dev/null
@@ -0,0 +1,406 @@
+## Copyright:: Nokia Corporation 2017
+## Note: Nokia VM HOT file for CFX-5000 IMS17.0
+## Name: "base_cscf.env"
+## History
+##     Date: 23 Aug 2017 
+##             1. corrected the flavour 
+##     2. internal ip range  to match the TPD for all VMs
+##     3. number of internal ip assignment in list 
+##                             a) cscf_internal_zone_0_ips
+##                             b) cscf_internal_zone_1_ips
+##                             c) cscf_internal_zone_0_v6_ips
+##                             d) cscf_internal_zone_1_v6_ips
+##                             e) tdcore_internal_zone_0_ips
+##                             f) tdcore_internal_zone_1_ips
+##              to match the count of cscf and tdcore.
+##     
+## Kilo Version
+
+parameters:
+# PSEUDO CONSTANTS
+# -----------------------------------------------------------------------------
+  vcscf_release: "17.0"
+  vcscf_name_delimeter: "_"
+  vcscf_internal_network_mtu: 1500
+
+  oam_image_name: IMS_17_0_OPENSTACK_OAM_1701400.000
+  cif_image_name: IMS_17_0_OPENSTACK_CSCF_1701400.000
+  lbd_image_name: IMS_17_0_OPENSTACK_CSCF_1701400.000
+  cdi_image_name: IMS_17_0_OPENSTACK_CSCF_1701400.000
+  cscf_image_name: IMS_17_0_OPENSTACK_CSCF_1701400.000
+  tdcore_image_name: IMS_17_0_OPENSTACK_CSCF_1701400.000
+
+  oam_flavor_name: ND.c4r32d30
+  cscf_flavor_name: ND.c8r16d38
+  cif_flavor_name: ND.c4r16d38
+  lbd_flavor_name: ND.c4r16d38
+  tdcore_flavor_name: ND.c4r16d38
+  cdi_flavor_name: ND.c4r8d38
+  
+
+  # vCSCF VM Counts
+
+  cscf_zone_0_count: 19
+  cscf_zone_1_count: 18
+  tdcore_zone_0_count: 4
+  tdcore_zone_1_count: 4
+
+
+  # vCSCF Internal Network
+
+  vcscf_internal_netmask: 255.255.255.0
+  vcscf_internal_network_cidr: 192.168.210.0/24
+  vcscf_internal_network_v6_cidr: 2a00:9a00:a000:1190:0:1:1:2b00/120
+  vcscf_internal_dpdk_network_cidr: 192.168.211.0/24
+  
+  # OAM Internal network
+
+  oam_internal_vip_0: 192.168.210.3
+  oam_internal_ip_0: 192.168.210.136
+  oam_internal_ip_1: 192.168.210.137
+  oam_internal_ip_2: 192.168.210.138
+
+  # CSCF VM Internal Network
+
+  cscf_internal_zone_0_ips:
+    - 192.168.210.16
+    - 192.168.210.18
+    - 192.168.210.20
+    - 192.168.210.22
+    - 192.168.210.24
+    - 192.168.210.26
+    - 192.168.210.28
+    - 192.168.210.30
+    - 192.168.210.32
+    - 192.168.210.34
+    - 192.168.210.36
+    - 192.168.210.38
+    - 192.168.210.40
+    - 192.168.210.42
+    - 192.168.210.44
+    - 192.168.210.46
+    - 192.168.210.48
+    - 192.168.210.50
+    - 192.168.210.52
+
+  cscf_internal_zone_1_ips:
+    - 192.168.210.17
+    - 192.168.210.19
+    - 192.168.210.21
+    - 192.168.210.23
+    - 192.168.210.25
+    - 192.168.210.27
+    - 192.168.210.29
+    - 192.168.210.31
+    - 192.168.210.33
+    - 192.168.210.35
+    - 192.168.210.37
+    - 192.168.210.39
+    - 192.168.210.41
+    - 192.168.210.43
+    - 192.168.210.45
+    - 192.168.210.47
+    - 192.168.210.49
+    - 192.168.210.51
+  cscf_internal_zone_0_v6_ips:
+    - "2a00:9a00:a000:1190:0:1:1:2b10"
+    - "2a00:9a00:a000:1190:0:1:1:2b12"
+    - "2a00:9a00:a000:1190:0:1:1:2b14"
+    - "2a00:9a00:a000:1190:0:1:1:2b16"
+    - "2a00:9a00:a000:1190:0:1:1:2b18"
+    - "2a00:9a00:a000:1190:0:1:1:2b1a"
+    - "2a00:9a00:a000:1190:0:1:1:2b1c"
+    - "2a00:9a00:a000:1190:0:1:1:2b1e"
+    - "2a00:9a00:a000:1190:0:1:1:2b20"
+    - "2a00:9a00:a000:1190:0:1:1:2b22"
+    - "2a00:9a00:a000:1190:0:1:1:2b24"
+    - "2a00:9a00:a000:1190:0:1:1:2b26"
+    - "2a00:9a00:a000:1190:0:1:1:2b28"
+    - "2a00:9a00:a000:1190:0:1:1:2b2a"
+    - "2a00:9a00:a000:1190:0:1:1:2b2c"
+    - "2a00:9a00:a000:1190:0:1:1:2b2e"
+    - "2a00:9a00:a000:1190:0:1:1:2b30"
+    - "2a00:9a00:a000:1190:0:1:1:2b32"
+    - "2a00:9a00:a000:1190:0:1:1:2b34"
+
+  cscf_internal_zone_1_v6_ips:
+    - "2a00:9a00:a000:1190:0:1:1:2b11"
+    - "2a00:9a00:a000:1190:0:1:1:2b13"
+    - "2a00:9a00:a000:1190:0:1:1:2b15"
+    - "2a00:9a00:a000:1190:0:1:1:2b17"
+    - "2a00:9a00:a000:1190:0:1:1:2b19"
+    - "2a00:9a00:a000:1190:0:1:1:2b1b"
+    - "2a00:9a00:a000:1190:0:1:1:2b1d"
+    - "2a00:9a00:a000:1190:0:1:1:2b1f"
+    - "2a00:9a00:a000:1190:0:1:1:2b21"
+    - "2a00:9a00:a000:1190:0:1:1:2b23"
+    - "2a00:9a00:a000:1190:0:1:1:2b25"
+    - "2a00:9a00:a000:1190:0:1:1:2b27"
+    - "2a00:9a00:a000:1190:0:1:1:2b29"
+    - "2a00:9a00:a000:1190:0:1:1:2b2b"
+    - "2a00:9a00:a000:1190:0:1:1:2b2d"
+    - "2a00:9a00:a000:1190:0:1:1:2b2f"
+    - "2a00:9a00:a000:1190:0:1:1:2b31"
+    - "2a00:9a00:a000:1190:0:1:1:2b33"
+
+  # TDCore VM Internal Network
+  
+  tdcore_internal_zone_0_ips:
+    - 192.168.210.8
+    - 192.168.210.10
+    - 192.168.210.12
+    - 192.168.210.14
+
+  tdcore_internal_zone_1_ips:
+    - 192.168.210.9
+    - 192.168.210.11
+    - 192.168.210.13
+    - 192.168.210.15
+  # TDCore VM DPDK Internal Network
+  
+  tdcore_dpdk_zone_0_ips:
+    - 192.168.211.8
+    - 192.168.211.10
+    - 192.168.211.12
+    - 192.168.211.14
+
+  tdcore_dpdk_zone_1_ips:
+    - 192.168.211.9
+    - 192.168.211.11
+    - 192.168.211.13
+    - 192.168.211.15
+
+  # CIF VM Internal Network
+  
+  cif_internal_ip_0: 192.168.210.1
+  cif_internal_ip_1: 192.168.210.2
+  cif_internal_vip_0: 192.168.210.150
+  cif_internal_v6_ip_0: "2a00:9a00:a000:1190:0:1:1:2b04"
+  cif_internal_v6_ip_1: "2a00:9a00:a000:1190:0:1:1:2b05"
+
+  # LBD (l2TD) VM Internal Network
+
+  lbd_internal_ip_0: 192.168.210.4
+  lbd_internal_ip_1: 192.168.210.5
+
+  # LBD (l2TD) VM DPDK Internal Network
+
+  lbd_internal_dpdk_ip_0: 192.168.211.1
+  lbd_internal_dpdk_ip_1: 192.168.211.2
+  lbd_internal_dpdk_vip_0: 192.168.211.181
+
+  # CDI VM Internal Network
+
+  cdi_internal_ip_0: 192.168.210.139
+  cdi_internal_ip_1: 192.168.210.140
+  
+
+  cdi_internal_v6_ip_0: "2a00:9a00:a000:1190:0:1:1:2b8b"
+  cdi_internal_v6_ip_1: "2a00:9a00:a000:1190:0:1:1:2b8c"
+  cdi_internal_v6_vip_0: "2a00:9a00:a000:1190:0:1:1:2b8d"
+
+# SITE SPECIFIC
+# -----------------------------------------------------------------------------
+#  oam_volume_id_0: f0781f87-671c-40c0-82ce-4d8c0531fbc1
+#  oam_volume_id_1: 53a1d529-47a1-4722-bab0-d502603eef14
+#  cif_volume_id_0: d2262ef6-7bac-4c4e-abfb-fd78e3f0cc0b
+#  cif_volume_id_1: b1f6f2bc-6774-4c66-88ef-cb225d216bf0
+#
+#
+#------------------------------------
+#  Preload Sheet
+#------------------------------------
+#  # Network IDs
+#  oam_net_id: LAN1
+#  ims_core_net_id: ipv6_1256
+#  ims_li_v6_net_id: ipv6_1255
+#
+#  # instance availability zones for 1+1 pairs
+#  availability_zone_0: zone1
+#  availability_zone_1: zone2
+#
+#  cif_oam_ip_0: 192.168.1.26
+#  cif_oam_ip_1: 192.168.1.27
+#
+# Tag Value
+#  cif_oam_vip_0: 192.168.1.28
+#
+#  cif_ims_core_v6_ip_0: "2a00:8a00:a000:4000::308"
+#  cif_ims_core_v6_ip_1: "2a00:8a00:a000:4000::309"
+#  cif_ims_core_v6_vip_0: "2a00:8a00:a000:4000::310"
+#
+#  # Seperated Interface for LI-X1 (eth3)
+#  cif_oam_ip_2: 192.168.1.29
+#  cif_oam_ip_3: 192.168.1.30
+#
+# Tag Value
+#  cif_oam_vip_1: 192.168.1.31
+#
+#  # Seperated Interface for LI-X2 (eth4)
+#
+#  cif_ims_li_v6_ip_0: "2a00:8a00:a000:4000::284"
+#  cif_ims_li_v6_ip_1: "2a00:8a00:a000:4000::285"
+#  cif_ims_li_v6_vip_0: "2a00:8a00:a000:4000::286"
+#
+#
+#  lbd_ims_core_v6_ip_0: "2a00:8a00:a000:4000::311"
+#  lbd_ims_core_v6_ip_1: "2a00:8a00:a000:4000::312"
+#  lbd_ims_core_v6_vip_0: "2a00:8a00:a000:4000::313"
+#
+#
+#  cdi_ims_core_v6_ip_0: "2a00:8a00:a000:4000::314"
+#  cdi_ims_core_v6_ip_1: "2a00:8a00:a000:4000::315"
+#  cdi_ims_core_v6_vip_0: "2a00:8a00:a000:4000::316"
+#
+#  oam_name_0: cscf0011vm001oam001
+#  oam_name_1: cscf0011vm002oam001
+#  oam_name_2: cscf0011vm003oam001
+#  cif_name_0: cscf0011vm004cif001
+#  cif_name_1: cscf0011vm005cif001
+#  cdi_name_0: cscf0011vm006cdi001
+#  cdi_name_1: cscf0011vm007cdi001
+#  lbd_name_0: cscf0011vm008lbd001
+#  lbd_name_1: cscf0011vm009lbd001
+#
+#------------------------------------
+#  Tag values
+#------------------------------------
+#
+#  vcscf_dn: DN1
+#  vcscf_du: DU1
+#  vcscf_cmrepo_address: 10.111.12.71
+#  vcscf_swrepo_address: 10.111.12.71
+#  vcscf_dns_address: 10.111.12.67
+#
+#  vnf_name: CSCF0001
+#  vnf_id: CSCF0001
+#  vf_module_name: CSCF0001
+#  vf_module_id: CSCF0001
+#
+#  vcscf_oam_netmask: 255.255.255.0
+#  vcscf_default_gateway: 192.168.1.1
+#
+#  oam_oam_vip_0: 192.168.1.21
+#  oam_oam_ip_0: 192.168.1.23
+#  oam_oam_ip_1: 192.168.1.24
+#  oam_oam_ip_2: 192.168.1.25
+#
+#  tdcore_zone_0_names:
+#    - cscf0011vm101sip001
+#    - cscf0011vm103sip001
+#    - cscf0011vm105sip001
+#    - cscf0011vm107sip001
+#
+#  tdcore_zone_1_names:
+#    - cscf0011vm102sip001
+#    - cscf0011vm104sip001
+#    - cscf0011vm106sip001
+#    - cscf0011vm108sip001
+#
+#  cscf_zone_0_names:
+#    - cscf0011vm201scf001
+#    - cscf0011vm203scf001
+#    - cscf0011vm205scf001
+#    - cscf0011vm207scf001
+#    - cscf0011vm209scf001
+#    - cscf0011vm211scf001
+#    - cscf0011vm213scf001
+#    - cscf0011vm215scf001
+#    - cscf0011vm217scf001
+#    - cscf0011vm219scf001
+#    - cscf0011vm221scf001
+#    - cscf0011vm223scf001
+#    - cscf0011vm225scf001
+#    - cscf0011vm227scf001
+#    - cscf0011vm229scf001
+#    - cscf0011vm231scf001
+#    - cscf0011vm233scf001
+#    - cscf0011vm235scf001
+#    - cscf0011vm237scf001
+#
+#  cscf_zone_1_names:
+#    - cscf0011vm202scf001
+#    - cscf0011vm204scf001
+#    - cscf0011vm206scf001
+#    - cscf0011vm208scf001
+#    - cscf0011vm210scf001
+#    - cscf0011vm212scf001
+#    - cscf0011vm214scf001
+#    - cscf0011vm216scf001
+#    - cscf0011vm218scf001
+#    - cscf0011vm220scf001
+#    - cscf0011vm222scf001
+#    - cscf0011vm224scf001
+#    - cscf0011vm226scf001
+#    - cscf0011vm228scf001
+#    - cscf0011vm230scf001
+#    - cscf0011vm232scf001
+#    - cscf0011vm234scf001
+#    - cscf0011vm236scf001
+#
+#  # Below value should be taken from CMRepo after parsing the TPD or the below names should be used while parsing TPD as input
+#
+#  oam_uuid_0:  cscf0011vm001oam001
+#  oam_uuid_1:  cscf0011vm002oam001
+#  oam_uuid_2:  cscf0011vm003oam001
+#  cif_uuid_0:  cscf0011vm004cif001
+#  cif_uuid_1:  cscf0011vm005cif001
+#  lbd_uuid_0:  cscf0011vm006cdi001
+#  lbd_uuid_1:  cscf0011vm007cdi001
+#  cdi_uuid_0:  cscf0011vm008lbd001
+#  cdi_uuid_1:  cscf0011vm009lbd001
+#
+#  tdcore_zone_0_uuids:
+#    - cscf0011vm101sip001
+#    - cscf0011vm103sip001
+#    - cscf0011vm105sip001
+#    - cscf0011vm107sip001
+#
+#  tdcore_zone_1_uuids:
+#    - cscf0011vm102sip001
+#    - cscf0011vm104sip001
+#    - cscf0011vm106sip001
+#    - cscf0011vm108sip001
+#
+#  cscf_zone_0_uuids:
+#    - cscf0011vm201scf001
+#    - cscf0011vm203scf001
+#    - cscf0011vm205scf001
+#    - cscf0011vm207scf001
+#    - cscf0011vm209scf001
+#    - cscf0011vm211scf001
+#    - cscf0011vm213scf001
+#    - cscf0011vm215scf001
+#    - cscf0011vm217scf001
+#    - cscf0011vm219scf001
+#    - cscf0011vm221scf001
+#    - cscf0011vm223scf001
+#    - cscf0011vm225scf001
+#    - cscf0011vm227scf001
+#    - cscf0011vm229scf001
+#    - cscf0011vm231scf001
+#    - cscf0011vm233scf001
+#    - cscf0011vm235scf001
+#    - cscf0011vm237scf001
+#
+#  cscf_zone_1_uuids:
+#    - cscf0011vm202scf001
+#    - cscf0011vm204scf001
+#    - cscf0011vm206scf001
+#    - cscf0011vm208scf001
+#    - cscf0011vm210scf001
+#    - cscf0011vm212scf001
+#    - cscf0011vm214scf001
+#    - cscf0011vm216scf001
+#    - cscf0011vm218scf001
+#    - cscf0011vm220scf001
+#    - cscf0011vm222scf001
+#    - cscf0011vm224scf001
+#    - cscf0011vm226scf001
+#    - cscf0011vm228scf001
+#    - cscf0011vm230scf001
+#    - cscf0011vm232scf001
+#    - cscf0011vm234scf001
+#    - cscf0011vm236scf001
+
+
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/duplicateReqs/in/base_cscf.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/duplicateReqs/in/base_cscf.yaml
new file mode 100644 (file)
index 0000000..f907f28
--- /dev/null
@@ -0,0 +1,2045 @@
+## Copyright:: Nokia Corporation 2017
+## Note: Nokia VM HOT file for CFX
+## Name: "base_cscf.yaml"
+## Date: 20 Mar 2017
+## Kilo Version
+heat_template_version: 2015-04-30
+
+description: >
+  CFX-5000 N+K VNF HOT template for AT&T.
+
+parameters:
+
+  vnf_name:
+    type: string
+    description: Unique name for this VF instance
+
+  vnf_id:
+    type: string
+    description: Unique ID for this VF instance
+
+  vf_module_name:
+    type: string
+    description: Unique name for this VF Module instance
+
+  vf_module_id:
+    type: string
+    description: Unique ID for this VF Module instance
+
+  cif_volume_id_0:
+        type: string
+        description: size of the cinder volume used for cif
+  cif_volume_id_1:
+        type: string
+        description: size of the cinder volume used for cif
+
+  oam_volume_id_0:
+        type: string
+        description: size of the cinder volume used for oam
+  oam_volume_id_1:
+        type: string
+        description: size of the cinder volume used for oam
+
+  oam_net_id:
+    type: string
+    description: Name/UUID of OAM network
+
+  ims_core_net_id:
+    type: string
+    description: Name/UUID of Core network
+
+  ims_li_v6_net_id:
+    type: string
+    description: Name/UUID of V6 LI network
+
+  availability_zone_0:
+    type: string
+    description: >
+      Availability zone  where the first node of a pair will be deployed.
+      Availability zone 0 and 1 can have same zone name if single zone is used.
+
+  availability_zone_1:
+    type: string
+    description: >
+      Availability zone  where the second node of a pair will be deployed.
+      Availability zone 0 and 1 can have same zone name if single zone is used.
+
+  oam_image_name:
+    type: string
+    description: OAM VM image name
+
+  cif_image_name:
+    type: string
+    description: CSCF CIF VM image name
+
+  lbd_image_name:
+    type: string
+    description: CSCF LBD VM image name
+
+  cdi_image_name:
+    type: string
+    description: CDI VM image name
+
+  cscf_image_name:
+    type: string
+    description: CSCF server VM image name
+
+  tdcore_image_name:
+    type: string
+    description: TDCORE VM image name
+
+  oam_flavor_name:
+    type: string
+    description: OAM VM flavor
+
+  cscf_flavor_name:
+    type: string
+    description: CSCF server VM flavor
+
+  cif_flavor_name:
+    type: string
+    description: CSCF CIF VM flavor
+
+  lbd_flavor_name:
+    type: string
+    description: CSCF LBD VM flavor
+
+  tdcore_flavor_name:
+    type: string
+    description: TDCORE VM flavor
+
+  cdi_flavor_name:
+    type: string
+    description: CDI VM flavor
+
+  cscf_zone_0_count:
+    type: number
+    description: >
+      Number of CSCF to be deployed on zone 0.
+      This parameter is used to scale the cscf instances.
+    constraints:
+        - range: { min: 0, max: 120 }
+
+  cscf_zone_1_count:
+    type: number
+    description: >
+      Number of CSCF to be deployed on zone 1.
+      This parameter is used to scale the cscf instances.
+    constraints:
+        - range: { min: 0, max: 120 }
+
+  tdcore_zone_0_count:
+    type: number
+    description: >
+      Number of TD Core VMs to be deployed zone 0.
+      This parameter is used to scale the TD Core instances.
+    constraints:
+        - range: { min: 0, max: 8 }
+
+  tdcore_zone_1_count:
+    type: number
+    description: >
+      Number of TD Core VMs to be deployed zone 1.
+      This parameter is used to scale the TD Core instances.
+    constraints:
+        - range: { min: 0, max: 8 }
+
+  vcscf_internal_netmask:
+    type: string
+    description: Netmask for Internal LAN
+
+  vcscf_internal_network_cidr:
+    type: string
+    description: CIDR for for Internal LAN
+
+  vcscf_internal_network_v6_cidr:
+    type: string
+    description: CIDR for for Internal LAN v6
+
+  vcscf_internal_dpdk_network_cidr:
+    type: string
+    description: CIDR for for Internal LAN DPDK
+
+  vcscf_oam_netmask:
+    type: string
+    description: Netmask for OAM LAN
+
+  vcscf_default_gateway:
+    type: string
+    description: Default gateway for OAM LAN
+
+  oam_oam_vip_0:
+    type: string
+    description: OAM CIPA IP of OAM unit
+
+  oam_oam_ip_0:
+    type: string
+    description: OAM IP of OAM01 instance
+
+  oam_oam_ip_1:
+    type: string
+    description: OAM IP of OAM02 instance
+
+  oam_oam_ip_2:
+    type: string
+    description: OAM IP of OAM03 instance
+
+  oam_internal_vip_0:
+    type: string
+    description: Internal CIPA IP of OAM unit
+
+  oam_internal_ip_0:
+    type: string
+    description: Internal IP of OAM01 instance
+
+  oam_internal_ip_1:
+    type: string
+    description: Internal IP of OAM01 instance
+
+  oam_internal_ip_2:
+    type: string
+    description: Internal IP of OAM01 instance
+
+  cscf_internal_zone_0_ips:
+    type: comma_delimited_list
+    description: "List of Internal Lan IPs for CSCF instances on zone 0"
+
+  cscf_internal_zone_0_v6_ips:
+    type: comma_delimited_list
+    description: "List of Internal Lan v6 IPs for CSCF instances on zone 0"
+
+  cscf_internal_zone_1_ips:
+    type: comma_delimited_list
+    description: "List of Internal Lan IPs for CSCF instances on zone 1"
+
+  cscf_internal_zone_1_v6_ips:
+    type: comma_delimited_list
+    description: "List of Internal Lan v6 IPs for CSCF instances on zone 1"
+
+  tdcore_internal_zone_0_ips:
+    type: comma_delimited_list
+    description: "List of Internal Lan IPs for TDCORE instances on zone 0"
+
+  tdcore_dpdk_zone_0_ips:
+    type: comma_delimited_list
+    description: "List of DPDK Lan IPs for TDCORE instances on zone 0"
+
+  tdcore_internal_zone_1_ips:
+    type: comma_delimited_list
+    description: "List of Internal Lan IPs for TDCORE instances on zone 1"
+
+  tdcore_dpdk_zone_1_ips:
+    type: comma_delimited_list
+    description: "List of DPDK Lan IPs for TDCORE instances on zone 1"
+
+  cif_internal_ip_0:
+    type: string
+    description: Internal IP of CIF01 instance
+
+  cif_internal_ip_1:
+    type: string
+    description: Internal IP of CIF02 instance
+
+  cif_internal_vip_0:
+    type: string
+    description: Internal CIPA IP of CIF
+
+  cif_internal_v6_ip_0:
+    type: string
+    description: Internal IP v6 of CIF01 instance
+
+  cif_internal_v6_ip_1:
+    type: string
+    description: Internal IP v6 of CIF02 instance
+
+  cif_oam_ip_0:
+    type: string
+    description: OAM IP of CIF01 instance
+
+  cif_oam_ip_1:
+    type: string
+    description: OAM IP of CIF02 instance
+
+  cif_oam_vip_0:
+    type: string
+    description: OAM CIPA IP of CIF
+
+  cif_ims_core_v6_ip_0:
+    type: string
+    description: IMS CORE v6 IP of CIF01 instance
+
+  cif_ims_core_v6_ip_1:
+    type: string
+    description: IMS CORE v6 IP of CIF02 instance
+
+  cif_ims_core_v6_vip_0:
+    type: string
+    description: IMS CORE v6 CIPA IP of CIF
+
+  cif_oam_ip_2:
+    type: string
+    description: OAM (LI-X1) v4 IP of CIF01 instance
+    
+  cif_oam_ip_3:
+    type: string
+    description: OAM (LI-X1) v4 IP of CIF02 instance
+
+  cif_oam_vip_1:
+    type: string
+    description: OAM (LI-X1) v4 CIPA of CIF
+    
+  cif_ims_li_v6_ip_0:
+    type: string
+    description: IMS LI v6 IP of CIF01 instance
+
+  cif_ims_li_v6_ip_1:
+    type: string
+    description: IMS LI v6 IP of CIF02 instance
+
+  cif_ims_li_v6_vip_0:
+    type: string
+    description: IMS LI CIPA v6 IP of CIF
+
+  lbd_internal_ip_0:
+    type: string
+    description: Internal IP of LBD01 instance
+
+  lbd_internal_ip_1:
+    type: string
+    description: Internal IP of LBD02 instance
+
+  lbd_internal_dpdk_ip_0:
+    type: string
+    description: Internal DPDK IP of LBD01 instance
+
+  lbd_internal_dpdk_ip_1:
+    type: string
+    description: Internal DPDK IP of LBD02 instance
+
+  lbd_internal_dpdk_vip_0:
+    type: string
+    description: Internal DPDK CIP IP of LBD
+
+  lbd_ims_core_v6_ip_0:
+    type: string
+    description: IMS CORE v6 IP of LBD01 instance
+
+  lbd_ims_core_v6_ip_1:
+    type: string
+    description: IMS CORE v6 IP of LBD02 instance
+
+  lbd_ims_core_v6_vip_0:
+    type: string
+    description: IMS CORE CIPA v6 IP of LBD
+
+  cdi_internal_ip_0:
+    type: string
+    description: Internal IP of CDI01 instance
+
+  cdi_internal_ip_1:
+    type: string
+    description: Internal IP of CDI02 instance
+
+  cdi_internal_v6_ip_0:
+    type: string
+    description: Internal v6 IP of CDI01 instance
+
+  cdi_internal_v6_ip_1:
+    type: string
+    description: Internal v6 IP of CDI02 instance
+
+  cdi_internal_v6_vip_0:
+    type: string
+    description: Internal v6 CIPA IP of CDI
+
+  cdi_ims_core_v6_ip_0:
+    type: string
+    description: IMS CORE LAN v6 IP of CDI01 instance
+
+  cdi_ims_core_v6_ip_1:
+    type: string
+    description: IMS CORE LAN v6 IP of CDI02 instance
+
+  cdi_ims_core_v6_vip_0:
+    type: string
+    description: IMS CORE LAN CIPA v6 IP of CDI
+
+  vcscf_name_delimeter:
+    type: string
+    description: 'delimeter used in concatenating different words while naming (ex: "-","_",".",...)'
+    constraints:
+      - allowed_values: [ '-', '', '_', '.']
+
+  oam_name_0:
+    type: string
+    description: OAM01 instance name
+
+  oam_name_1:
+    type: string
+    description: OAM02 instance name
+
+  oam_name_2:
+    type: string
+    description: OAM03 instance name
+
+  cif_name_0:
+    type: string
+    description: CIF01 instance name
+
+  cif_name_1:
+    type: string
+    description: CIF02 instance name
+
+  lbd_name_0:
+    type: string
+    description: LBD01 instance name
+
+  lbd_name_1:
+    type: string
+    description: LBD02 instance name
+
+  cdi_name_0:
+    type: string
+    description: CDI01 instance name
+
+  cdi_name_1:
+    type: string
+    description: CDI02 instance name
+
+  cscf_zone_0_names:
+    type: comma_delimited_list
+    description: "List of instance names for CSCF instances on zone 0"
+
+  cscf_zone_1_names:
+    type: comma_delimited_list
+    description: "List of instance names for CSCF instances on zone 1"
+
+  tdcore_zone_0_names:
+    type: comma_delimited_list
+    description: "List of instance names for TDCORE instances on zone 0"
+
+  tdcore_zone_1_names:
+    type: comma_delimited_list
+    description: "List of instance names for TDCORE instances on zone 1"
+
+  vcscf_release:
+    type: string
+    description: "IMS release"
+
+  vcscf_dn:
+    type: string
+    description: "DN name"
+
+  vcscf_du:
+    type: string
+    description: "DU name"
+
+  vcscf_cmrepo_address:
+    type: string
+    description: "CMRepo IP or FQDN"
+
+  vcscf_swrepo_address:
+    type: string
+    description: SWRepo IP or FQDN
+
+  vcscf_dns_address:
+    type: string
+    description: DNS server IP
+
+  vcscf_internal_network_mtu:
+    type: number
+    description: MTU for internal network interface (eth0)
+    constraints:
+      - range: { min: 1000, max: 9100 }
+
+  oam_uuid_0:
+    type: string
+    description: UUID generated by cmrepo for OAM01
+
+  oam_uuid_1:
+    type: string
+    description: UUID generated by cmrepo for OAM02
+
+  oam_uuid_2:
+    type: string
+    description: UUID generated by cmrepo for OAM03
+
+  cif_uuid_0:
+    type: string
+    description: UUID generated by cmrepo for CIF01
+
+  cif_uuid_1:
+    type: string
+    description: UUID generated by cmrepo for CIF02
+
+  lbd_uuid_0:
+    type: string
+    description: UUID generated by cmrepo for LBD01
+
+  lbd_uuid_1:
+    type: string
+    description: UUID generated by cmrepo for LBD02
+
+  cdi_uuid_0:
+    type: string
+    description: UUID generated by cmrepo for CDI01
+
+  cdi_uuid_1:
+    type: string
+    description: UUID generated by cmrepo for CDI02
+
+  cscf_zone_0_uuids:
+    type: comma_delimited_list
+    description: "List of UUIDs generated by cmrepo for CSCF instances on zone 0"
+
+  cscf_zone_1_uuids:
+    type: comma_delimited_list
+    description: "List of UUIDs generated by cmrepo for CSCF instances on zone 1"
+
+  tdcore_zone_0_uuids:
+    type: comma_delimited_list
+    description: "List of UUIDs generated by cmrepo for TDCORE instances on zone 0"
+
+  tdcore_zone_1_uuids:
+    type: comma_delimited_list
+    description: "List of UUIDs generated by cmrepo for TDCORE instances on zone 1"
+
+resources:
+
+  cscf_RSG:
+    type: OS::Neutron::SecurityGroup
+    properties:
+      description: Allow all
+      name:
+        str_replace:
+          template: "$VNF$DELsecurity$DELgroup"
+          params:
+            $VNF: { get_param: vnf_name }
+            $DEL: { get_param: vcscf_name_delimeter }
+      rules:
+        - { direction: ingress, ethertype: IPv4 }
+        - { direction: egress, ethertype: IPv4 }
+        - { direction: ingress, ethertype: IPv6 }
+        - { direction: egress, ethertype: IPv6 }
+
+  cscf_internal_network_0:
+    type: OS::Neutron::Net
+    properties:
+      name:
+        str_replace:
+          template: $PREFIX$DELinternal$DELnetwork
+          params:
+            $PREFIX: { get_param: vnf_name }
+            $DEL: { get_param: vcscf_name_delimeter }
+      admin_state_up: True
+      shared: False
+
+  cscf_internal_subnet_0:
+    type: OS::Neutron::Subnet
+    properties:
+      name:
+        str_replace:
+          template: $PREFIX$DELinternal$DELsubnet
+          params:
+            $PREFIX: { get_param: vnf_name }
+            $DEL: { get_param: vcscf_name_delimeter }
+      ip_version: 4
+      network: { get_resource: cscf_internal_network_0 }
+      cidr: { get_param: vcscf_internal_network_cidr }
+      enable_dhcp: False
+      gateway_ip: null
+
+  cscf_internal_subnet_v6_0:
+    type: OS::Neutron::Subnet
+    properties:
+      name:
+        str_replace:
+          template: $PREFIX$DELinternal$DELsubnetv6
+          params:
+            $PREFIX: { get_param: vnf_name }
+            $DEL: { get_param: vcscf_name_delimeter }
+      ip_version: 6
+      network: { get_resource: cscf_internal_network_0 }
+      cidr: { get_param: vcscf_internal_network_v6_cidr }
+      enable_dhcp: False
+      gateway_ip: null
+
+  cscf_internal_dpdk_network_0:
+    type: OS::Neutron::Net
+    properties:
+      name:
+        str_replace:
+          template: $PREFIX$DELinternal$DELdpdk$DELnetwork
+          params:
+            $PREFIX: { get_param: vnf_name }
+            $DEL: { get_param: vcscf_name_delimeter }
+      admin_state_up: True
+      shared: False
+
+  cscf_internal_dpdk_subnet_0:
+    type: OS::Neutron::Subnet
+    properties:
+      name:
+        str_replace:
+          template: $PREFIX$DELinternal$DELdpdk$DELsubnet
+          params:
+            $PREFIX: { get_param: vnf_name }
+            $DEL: { get_param: vcscf_name_delimeter }
+      network: { get_resource: cscf_internal_dpdk_network_0 }
+      cidr: { get_param: vcscf_internal_dpdk_network_cidr }
+      enable_dhcp: False
+      gateway_ip: null
+
+  cif_server_group:
+    type: OS::Nova::ServerGroup
+    properties:
+      name:
+        str_replace:
+          template: "$VNF$DELcif$DELgroup"
+          params:
+            $VNF: { get_param: vnf_name }
+            $DEL: { get_param: vcscf_name_delimeter }
+      policies: ["anti-affinity"]
+
+  lbd_server_group:
+    type: OS::Nova::ServerGroup
+    properties:
+      name:
+        str_replace:
+          template: "$VNF$DELlbd$DELgroup"
+          params:
+            $VNF: { get_param: vnf_name }
+            $DEL: { get_param: vcscf_name_delimeter }
+      policies: ["anti-affinity"]
+
+  cdi_server_group:
+    type: OS::Nova::ServerGroup
+    properties:
+      name:
+        str_replace:
+          template: "$VNF$DELcdi$DELgroup"
+          params:
+            $VNF: { get_param: vnf_name }
+            $DEL: { get_param: vcscf_name_delimeter }
+      policies: ["anti-affinity"]
+
+  oam_server_group:
+    type: OS::Nova::ServerGroup
+    properties:
+      name:
+        str_replace:
+          template: "$VNF$DELoam$DELgroup"
+          params:
+            $VNF: { get_param: vnf_name }
+            $DEL: { get_param: vcscf_name_delimeter }
+      policies: ["anti-affinity"]
+
+  tdcore_zone_0_server_group:
+    type: OS::Nova::ServerGroup
+    properties:
+      name:
+        str_replace:
+          template: "$VNF$DELtdcore$DELzone0$DELgroup"
+          params:
+            $VNF: { get_param: vnf_name }
+            $DEL: { get_param: vcscf_name_delimeter }
+      policies: ["anti-affinity"]
+
+  tdcore_zone_1_server_group:
+    type: OS::Nova::ServerGroup
+    properties:
+      name:
+        str_replace:
+          template: "$VNF$DELtdcore$DELzone1$DELgroup"
+          params:
+            $VNF: { get_param: vnf_name }
+            $DEL: { get_param: vcscf_name_delimeter }
+      policies: ["anti-affinity"]
+
+  cif_internal_vip_0_port:
+    type: OS::Neutron::Port
+    depends_on:
+      - cscf_internal_subnet_0
+    properties:
+      name:
+        str_replace:
+          template: $NAME$DELcif$DELinternal$DELvip
+          params:
+            $NAME: { get_param: vnf_name }
+            $DEL: { get_param: vcscf_name_delimeter }
+      network: { get_resource: cscf_internal_network_0 }
+      security_groups:
+        - { get_resource: cscf_RSG }
+      fixed_ips:
+        - ip_address: { get_param: cif_internal_vip_0 }
+
+  cif_oam_vip_1_port:
+    type: OS::Neutron::Port
+    properties:
+      name:
+        str_replace:
+          template: $NAME$DELcif$DELoam$DELvip0
+          params:
+            $NAME: { get_param: vnf_name }
+            $DEL: { get_param: vcscf_name_delimeter }
+      network: { get_param: oam_net_id }
+      security_groups:
+        - { get_resource: cscf_RSG }
+      fixed_ips:
+        - ip_address: { get_param: cif_oam_vip_0 }
+
+  cif_ims_core_v6_vip_2_port:
+    type: OS::Neutron::Port
+    properties:
+      name:
+        str_replace:
+          template: $NAME$DELcif$DELims$DELcore$DELvip$DELv6
+          params:
+            $NAME: { get_param: vnf_name }
+            $DEL: { get_param: vcscf_name_delimeter }
+      network: { get_param: ims_core_net_id }
+      security_groups:
+        - { get_resource: cscf_RSG }
+      fixed_ips:
+        - ip_address: { get_param: cif_ims_core_v6_vip_0 }
+        
+  cif_oam_vip_3_port:
+    type: OS::Neutron::Port
+    properties:
+      name:
+        str_replace:
+          template: $NAME$DELcif$DELoam$DELvip1
+          params:
+            $NAME: { get_param: vnf_name }
+            $DEL: { get_param: vcscf_name_delimeter }
+      network: { get_param: oam_net_id }
+      security_groups:
+        - { get_resource: cscf_RSG }
+      fixed_ips:
+        - ip_address: { get_param: cif_oam_vip_1 }
+        
+  cif_ims_li_v6_vip_4_port:
+    type: OS::Neutron::Port
+    properties:
+      name:
+        str_replace:
+          template: $NAME$DELcif$DELims$DELli$DELvip$DELv6
+          params:
+            $NAME: { get_param: vnf_name }
+            $DEL: { get_param: vcscf_name_delimeter }
+      network: { get_param: ims_li_v6_net_id }
+      security_groups:
+        - { get_resource: cscf_RSG }
+      fixed_ips:
+        - ip_address: { get_param: cif_ims_li_v6_vip_0 }
+
+  lbd_internal_dpdk_vip_1_port:
+    type: OS::Neutron::Port
+    depends_on:
+      - cscf_internal_dpdk_subnet_0
+    properties:
+      name:
+        str_replace:
+          template: $NAME$DELlbd$DELinternal$DELdpdk$DELvip
+          params:
+            $NAME: { get_param: vnf_name }
+            $DEL: { get_param: vcscf_name_delimeter }
+      network: { get_resource: cscf_internal_dpdk_network_0 }
+      security_groups:
+        - { get_resource: cscf_RSG }
+      fixed_ips:
+        - ip_address: { get_param: lbd_internal_dpdk_vip_0 }
+
+  lbd_ims_core_v6_vip_2_port:
+    type: OS::Neutron::Port
+    properties:
+      name:
+        str_replace:
+          template: $NAME$DELlbd$DELims$DELcore$DELvip$DELv6
+          params:
+            $NAME: { get_param: vnf_name }
+            $DEL: { get_param: vcscf_name_delimeter }
+      network: { get_param: ims_core_net_id }
+      security_groups:
+        - { get_resource: cscf_RSG }
+      fixed_ips:
+        - ip_address: { get_param: lbd_ims_core_v6_vip_0 }
+
+  cdi_internal_v6_vip_0_port:
+    type: OS::Neutron::Port
+    depends_on:
+      - cscf_internal_subnet_v6_0
+    properties:
+      name:
+        str_replace:
+          template: $NAME$DELcdi$DELinternal$DELvip$DELv6
+          params:
+            $NAME: { get_param: vnf_name }
+            $DEL: { get_param: vcscf_name_delimeter }
+      network: { get_resource: cscf_internal_network_0 }
+      security_groups:
+        - { get_resource: cscf_RSG }
+      fixed_ips:
+        - ip_address: { get_param: cdi_internal_v6_vip_0 }
+
+  cdi_ims_core_v6_vip_1_port:
+    type: OS::Neutron::Port
+    properties:
+      name:
+        str_replace:
+          template: $NAME$DELcdi$DELims$DELdb$DELvip$DELv6
+          params:
+            $NAME: { get_param: vnf_name }
+            $DEL: { get_param: vcscf_name_delimeter }
+      network: { get_param: ims_core_net_id }
+      security_groups:
+        - { get_resource: cscf_RSG }
+      fixed_ips:
+        - ip_address: { get_param: cdi_ims_core_v6_vip_0 }
+
+  oam_internal_vip_0_port:
+    type: OS::Neutron::Port
+    depends_on:
+      - cscf_internal_subnet_0
+    properties:
+      name:
+        str_replace:
+          template: $NAME$DELoam$DELinternal$DELvip
+          params:
+            $NAME: { get_param: vnf_name }
+            $DEL: { get_param: vcscf_name_delimeter }
+      network: { get_resource: cscf_internal_network_0 }
+      security_groups:
+        - { get_resource: cscf_RSG }
+      fixed_ips:
+        - ip_address: { get_param: oam_internal_vip_0 }
+
+  oam_oam_vip_1_port:
+    type: OS::Neutron::Port
+    properties:
+      name:
+        str_replace:
+          template: $NAME$DELoam$DELoam$DELvip
+          params:
+            $NAME: { get_param: vnf_name }
+            $DEL: { get_param: vcscf_name_delimeter }
+      network: { get_param: oam_net_id }
+      security_groups:
+        - { get_resource: cscf_RSG }
+      fixed_ips:
+        - ip_address: { get_param: oam_oam_vip_0 }
+
+  oam_internal_0_port_0:
+    type: OS::Neutron::Port
+    depends_on:
+      - cscf_internal_subnet_0
+    properties:
+      name:
+        str_replace:
+          template: $PREFIX$DELeth0
+          params:
+            $PREFIX: { get_param: oam_name_0 }
+            $DEL: { get_param: vcscf_name_delimeter }
+      network: { get_resource: cscf_internal_network_0 }
+      security_groups:
+        - { get_resource: cscf_RSG }
+      fixed_ips:
+        - ip_address: { get_param: oam_internal_ip_0 }
+      allowed_address_pairs:
+        - ip_address: "0.0.0.0/1"
+        - ip_address: "128.0.0.0/1"
+        - ip_address: "::/1"
+        - ip_address: "8000::/1"
+
+  oam_oam_0_port_1:
+    type: OS::Neutron::Port
+    properties:
+      name:
+        str_replace:
+          template: $PREFIX$DELeth1
+          params:
+            $PREFIX: { get_param: oam_name_0 }
+            $DEL: { get_param: vcscf_name_delimeter }
+      network: { get_param: oam_net_id }
+      security_groups:
+        - { get_resource: cscf_RSG }
+      fixed_ips:
+        - ip_address: { get_param: oam_oam_ip_0 }
+      allowed_address_pairs:
+        - ip_address: { get_param: oam_oam_vip_0}
+
+
+  oam_server_0:
+    type: OS::Nova::Server
+    properties:
+      availability_zone: { get_param: availability_zone_0 }
+      scheduler_hints: { group: { get_resource: oam_server_group } }
+      name: { get_param: oam_name_0 }
+      flavor: { get_param: oam_flavor_name }
+      image: { get_param: oam_image_name }
+      metadata:
+        vm_role: oam
+        vnf_id: {get_param: vnf_id}
+        vnf_name: {get_param: vnf_name}
+        vf_module_id: {get_param: vf_module_id}
+        vf_module_name:   {get_param: vf_module_name}
+      networks:
+        - port:  { get_resource: oam_internal_0_port_0 }
+        - port:  { get_resource: oam_oam_0_port_1 }
+      block_device_mapping:
+        - device_name: vdb
+          volume_id: { get_param: oam_volume_id_0 }
+      config_drive: True
+      user_data_format: RAW
+      user_data:
+        str_replace:
+          template: |
+            DN=$dn_name
+            DUName=$du_name
+            Uuid=$uuid
+            SwRepoIp=$swrepo_ip
+            CmRepoIp=$cmrepo_ip
+            OamDnsIp=$dns_ip
+            eth0_MTU=$mtu
+            UniqueId=$dn_name/$du_name/$release/$uuid
+            OamNetmask=$oam_netmask
+            OamIp=$oam_ip
+            OamCipa=$oam_cipa_ip
+            NodeCipa=$node_cipa_ip
+            Gateway=$gateway
+            OamGateway=$gateway
+            NodeIp=$node_ip
+            Netmask=$netmask
+            NodeType=OAM
+            DUType=CSCF
+            Release=$release
+            SwRepoPort=5571
+            CmRepoPort=8051
+            LbGroupId=1
+            HaGroupId=101
+            NodeName=$instance_name
+          params:
+            $dn_name: { get_param: vcscf_dn}
+            $du_name: { get_param: vcscf_du }
+            $uuid: { get_param: oam_uuid_0 }
+            $dns_ip: { get_param: vcscf_dns_address }
+            $cmrepo_ip: { get_param: vcscf_cmrepo_address }
+            $swrepo_ip: { get_param: vcscf_swrepo_address }
+            $release: { get_param: vcscf_release }
+            $mtu: { get_param: vcscf_internal_network_mtu }
+            $node_ip: { get_param: oam_internal_ip_0 }
+            $netmask: { get_param: vcscf_internal_netmask }
+            $gateway: { get_param:  vcscf_default_gateway}
+            $oam_ip: { get_param: oam_oam_ip_0 }
+            $oam_netmask: { get_param: vcscf_oam_netmask }
+            $node_cipa_ip: { get_param: oam_internal_vip_0 }
+            $oam_cipa_ip: { get_param: oam_oam_vip_0 }
+            $instance_name: { get_param: oam_name_0 }
+
+
+  oam_internal_1_port_0:
+    type: OS::Neutron::Port
+    depends_on:
+      - cscf_internal_subnet_0
+    properties:
+      name:
+        str_replace:
+          template: $PREFIX$DELeth0
+          params:
+            $PREFIX: { get_param: oam_name_1 }
+            $DEL: { get_param: vcscf_name_delimeter }
+      network: { get_resource: cscf_internal_network_0 }
+      security_groups:
+        - { get_resource: cscf_RSG }
+      fixed_ips:
+        - ip_address: { get_param: oam_internal_ip_1 }
+      allowed_address_pairs:
+        - ip_address: "0.0.0.0/1"
+        - ip_address: "128.0.0.0/1"
+        - ip_address: "::/1"
+        - ip_address: "8000::/1"
+
+  oam_oam_1_port_1:
+    type: OS::Neutron::Port
+    properties:
+      name:
+        str_replace:
+          template: $PREFIX$DELeth1
+          params:
+            $PREFIX: { get_param: oam_name_1 }
+            $DEL: { get_param: vcscf_name_delimeter }
+      network: { get_param: oam_net_id }
+      security_groups:
+        - { get_resource: cscf_RSG }
+      fixed_ips:
+        - ip_address: { get_param: oam_oam_ip_1 }
+      allowed_address_pairs:
+        - ip_address: { get_param: oam_oam_vip_0}
+
+
+  oam_server_1:
+    type: OS::Nova::Server
+    properties:
+      availability_zone: { get_param: availability_zone_1 }
+      scheduler_hints: { group: { get_resource: oam_server_group } }
+      name: { get_param: oam_name_1 }
+      flavor: { get_param: oam_flavor_name }
+      image: { get_param: oam_image_name }
+      metadata:
+        vm_role: oam
+        vnf_id: {get_param: vnf_id}
+        vnf_name: {get_param: vnf_name}
+        vf_module_id: {get_param: vf_module_id}
+        vf_module_name:   {get_param: vf_module_name}
+      networks:
+        - port:  { get_resource: oam_internal_1_port_0 }
+        - port:  { get_resource: oam_oam_1_port_1 }
+      block_device_mapping:
+        - device_name: vdb
+          volume_id: { get_param: oam_volume_id_1 }
+      config_drive: True
+      user_data_format: RAW
+      user_data:
+        str_replace:
+          template: |
+            DN=$dn_name
+            DUName=$du_name
+            Uuid=$uuid
+            SwRepoIp=$swrepo_ip
+            CmRepoIp=$cmrepo_ip
+            OamDnsIp=$dns_ip
+            eth0_MTU=$mtu
+            UniqueId=$dn_name/$du_name/$release/$uuid
+            OamNetmask=$oam_netmask
+            OamIp=$oam_ip
+            OamCipa=$oam_cipa_ip
+            NodeCipa=$node_cipa_ip
+            Gateway=$gateway
+            OamGateway=$gateway
+            NodeIp=$node_ip
+            Netmask=$netmask
+            NodeType=OAM
+            DUType=CSCF
+            Release=$release
+            SwRepoPort=5571
+            CmRepoPort=8051
+            LbGroupId=1
+            HaGroupId=101
+            NodeName=$instance_name
+          params:
+            $dn_name: { get_param: vcscf_dn}
+            $du_name: { get_param: vcscf_du }
+            $uuid: { get_param: oam_uuid_1 }
+            $dns_ip: { get_param: vcscf_dns_address }
+            $cmrepo_ip: { get_param: vcscf_cmrepo_address }
+            $swrepo_ip: { get_param: vcscf_swrepo_address }
+            $release: { get_param: vcscf_release }
+            $mtu: { get_param: vcscf_internal_network_mtu }
+            $node_ip: { get_param: oam_internal_ip_1 }
+            $netmask: { get_param: vcscf_internal_netmask }
+            $gateway: { get_param:  vcscf_default_gateway}
+            $oam_ip: { get_param: oam_oam_ip_1 }
+            $oam_netmask: { get_param: vcscf_oam_netmask }
+            $node_cipa_ip: { get_param: oam_internal_vip_0 }
+            $oam_cipa_ip: { get_param: oam_oam_vip_0 }
+            $instance_name: { get_param: oam_name_1 }
+
+  oam_internal_2_port_0:
+    type: OS::Neutron::Port
+    depends_on:
+      - cscf_internal_subnet_0
+    properties:
+      name:
+        str_replace:
+          template: $PREFIX$DELeth0
+          params:
+            $PREFIX: { get_param: oam_name_2 }
+            $DEL: { get_param: vcscf_name_delimeter }
+      network: { get_resource: cscf_internal_network_0 }
+      security_groups:
+        - { get_resource: cscf_RSG }
+      fixed_ips:
+        - ip_address: { get_param: oam_internal_ip_2 }
+      allowed_address_pairs:
+        - ip_address: "0.0.0.0/1"
+        - ip_address: "128.0.0.0/1"
+        - ip_address: "::/1"
+        - ip_address: "8000::/1"
+
+  oam_oam_2_port_1:
+    type: OS::Neutron::Port
+    properties:
+      name:
+        str_replace:
+          template: $PREFIX$DELeth1
+          params:
+            $PREFIX: { get_param: oam_name_2 }
+            $DEL: { get_param: vcscf_name_delimeter }
+      network: { get_param: oam_net_id }
+      security_groups:
+        - { get_resource: cscf_RSG }
+      fixed_ips:
+        - ip_address: { get_param: oam_oam_ip_2 }
+      allowed_address_pairs:
+        - ip_address: { get_param: oam_oam_vip_0}
+
+
+  oam_server_2:
+    type: OS::Nova::Server
+    properties:
+      availability_zone: { get_param: availability_zone_0 }
+      scheduler_hints: { group: { get_resource: oam_server_group } }
+      name: { get_param: oam_name_2 }
+      flavor: { get_param: oam_flavor_name }
+      image: { get_param: oam_image_name }
+      metadata:
+        vm_role: oam
+        vnf_id: {get_param: vnf_id}
+        vnf_name: {get_param: vnf_name}
+        vf_module_id: {get_param: vf_module_id}
+        vf_module_name:   {get_param: vf_module_name}
+      networks:
+        - port:  { get_resource: oam_internal_2_port_0 }
+        - port:  { get_resource: oam_oam_2_port_1 }
+      config_drive: True
+      user_data_format: RAW
+      user_data:
+        str_replace:
+          template: |
+            DN=$dn_name
+            DUName=$du_name
+            Uuid=$uuid
+            SwRepoIp=$swrepo_ip
+            CmRepoIp=$cmrepo_ip
+            OamDnsIp=$dns_ip
+            eth0_MTU=$mtu
+            UniqueId=$dn_name/$du_name/$release/$uuid
+            OamNetmask=$oam_netmask
+            OamIp=$oam_ip
+            OamCipa=$oam_cipa_ip
+            NodeCipa=$node_cipa_ip
+            Gateway=$gateway
+            OamGateway=$gateway
+            NodeIp=$node_ip
+            Netmask=$netmask
+            NodeType=OAM
+            DUType=CSCF
+            Release=$release
+            SwRepoPort=5571
+            CmRepoPort=8051
+            LbGroupId=1
+            HaGroupId=101
+            NodeName=$instance_name
+          params:
+            $dn_name: { get_param: vcscf_dn}
+            $du_name: { get_param: vcscf_du }
+            $uuid: { get_param: oam_uuid_2 }
+            $dns_ip: { get_param: vcscf_dns_address }
+            $cmrepo_ip: { get_param: vcscf_cmrepo_address }
+            $swrepo_ip: { get_param: vcscf_swrepo_address }
+            $release: { get_param: vcscf_release }
+            $mtu: { get_param: vcscf_internal_network_mtu }
+            $node_ip: { get_param: oam_internal_ip_2 }
+            $netmask: { get_param: vcscf_internal_netmask }
+            $gateway: { get_param:  vcscf_default_gateway}
+            $oam_ip: { get_param: oam_oam_ip_2 }
+            $oam_netmask: { get_param: vcscf_oam_netmask }
+            $node_cipa_ip: { get_param: oam_internal_vip_0 }
+            $oam_cipa_ip: { get_param: oam_oam_vip_0 }
+            $instance_name: { get_param: oam_name_2 }
+
+
+  cif_internal_0_port_0:
+    type: OS::Neutron::Port
+    depends_on:
+      - cscf_internal_subnet_0
+    properties:
+      name:
+        str_replace:
+          template: $PREFIX$DELeth0
+          params:
+            $PREFIX: { get_param: cif_name_0 }
+            $DEL: { get_param: vcscf_name_delimeter }
+      network: { get_resource: cscf_internal_network_0 }
+      security_groups:
+        - { get_resource: cscf_RSG }
+      fixed_ips:
+        - ip_address: { get_param: cif_internal_ip_0 }
+        - ip_address: { get_param: cif_internal_v6_ip_0 }
+      allowed_address_pairs:
+        - ip_address: { get_param: cif_internal_vip_0 }
+
+  cif_oam_0_port_1:
+    type: OS::Neutron::Port
+    properties:
+      name:
+        str_replace:
+          template: $PREFIX$DELeth1
+          params:
+            $PREFIX: { get_param: cif_name_0 }
+            $DEL: { get_param: vcscf_name_delimeter }
+      network: { get_param: oam_net_id }
+      security_groups:
+        - { get_resource: cscf_RSG }
+      fixed_ips:
+        - ip_address: { get_param: cif_oam_ip_0 }
+      allowed_address_pairs:
+        - ip_address: { get_param: cif_oam_vip_0}
+        
+  cif_ims_core_0_port_2:
+    type: OS::Neutron::Port
+    properties:
+      name:
+        str_replace:
+          template: $PREFIX$DELeth2
+          params:
+            $PREFIX: { get_param: cif_name_0 }
+            $DEL: { get_param: vcscf_name_delimeter }
+      network: { get_param: ims_core_net_id }
+      security_groups:
+        - { get_resource: cscf_RSG }
+      fixed_ips:
+        - ip_address: { get_param: cif_ims_core_v6_ip_0 }
+      allowed_address_pairs:
+        - ip_address: { get_param: cif_ims_core_v6_vip_0}
+
+
+  cif_oam_0_port_3:
+    type: OS::Neutron::Port
+    properties:
+      name:
+        str_replace:
+          template: $PREFIX$DELeth3
+          params:
+            $PREFIX: { get_param: cif_name_0 }
+            $DEL: { get_param: vcscf_name_delimeter }
+      network: { get_param: oam_net_id }
+      security_groups:
+        - { get_resource: cscf_RSG }
+      fixed_ips:
+        - ip_address: { get_param: cif_oam_ip_2 }
+      allowed_address_pairs:
+        - ip_address: { get_param: cif_oam_vip_1}
+        
+        
+  cif_ims_li_0_port_4:
+    type: OS::Neutron::Port
+    properties:
+      name:
+        str_replace:
+          template: $PREFIX$DELeth4
+          params:
+            $PREFIX: { get_param: cif_name_0 }
+            $DEL: { get_param: vcscf_name_delimeter }
+      network: { get_param: ims_li_v6_net_id }
+      security_groups:
+        - { get_resource: cscf_RSG }
+      fixed_ips:
+        - ip_address: { get_param: cif_ims_li_v6_ip_0 }
+      allowed_address_pairs:
+        - ip_address: { get_param: cif_ims_li_v6_vip_0}
+
+  cif_server_0:
+    type: OS::Nova::Server
+    properties:
+      availability_zone: { get_param: availability_zone_0 }
+      scheduler_hints: { group: { get_resource: cif_server_group } }
+      name: { get_param: cif_name_0 }
+      flavor: { get_param: cif_flavor_name }
+      image: { get_param: cif_image_name }
+      metadata:
+        vnf_id: {get_param: vnf_id}
+        vm_role: cif
+        vnf_name: {get_param: vnf_name}
+        vf_module_id: {get_param: vf_module_id}
+        vf_module_name:   {get_param: vf_module_name}
+      networks:
+        - port: { get_resource: cif_internal_0_port_0 }
+        - port: { get_resource: cif_oam_0_port_1 }
+        - port: { get_resource: cif_ims_core_0_port_2 }
+        - port: { get_resource: cif_oam_0_port_3 }
+        - port: { get_resource: cif_ims_li_0_port_4 }
+      block_device_mapping:
+        - device_name: vdb
+          volume_id: { get_param: cif_volume_id_0 }
+      config_drive: True
+      user_data_format: RAW
+      user_data:
+        str_replace:
+          template: |
+            DN=$dn_name
+            DUName=$du_name
+            Uuid=$uuid
+            SwRepoIp=$swrepo_ip
+            CmRepoIp=$cmrepo_ip
+            OamDnsIp=$dns_ip
+            eth0_MTU=$mtu
+            UniqueId=$dn_name/$du_name/$release/$uuid
+            OAMUnitInternalIp=$oam_unit_ip
+            NodeIp=$node_ip
+            Netmask=$netmask
+            Gateway=$oam_unit_ip
+            NodeType=CIF
+            DUType=CSCF
+            Release=$release
+            SwRepoPort=5571
+            CmRepoPort=8051
+            LbGroupId=1
+            HaGroupId=1
+            NodeName=$instance_name
+          params:
+            $dn_name: { get_param: vcscf_dn}
+            $du_name: { get_param: vcscf_du }
+            $cmrepo_ip: { get_param: vcscf_cmrepo_address }
+            $swrepo_ip: { get_param: vcscf_swrepo_address }
+            $oam_unit_ip: { get_param: oam_internal_vip_0 }
+            $netmask: { get_param: vcscf_internal_netmask }
+            $release: { get_param: vcscf_release }
+            $mtu: { get_param: vcscf_internal_network_mtu }
+            $dns_ip: { get_param: vcscf_dns_address }
+            $uuid: { get_param: cif_uuid_0 }
+            $node_ip: { get_param: cif_internal_ip_0 }
+            $instance_name: { get_param: cif_name_0 }
+
+  cif_internal_1_port_0:
+    type: OS::Neutron::Port
+    depends_on:
+      - cscf_internal_subnet_0
+    properties:
+      name:
+        str_replace:
+          template: $PREFIX$DELeth0
+          params:
+            $PREFIX: { get_param: cif_name_1 }
+            $DEL: { get_param: vcscf_name_delimeter }
+      network: { get_resource: cscf_internal_network_0 }
+      security_groups:
+        - { get_resource: cscf_RSG }
+      fixed_ips:
+        - ip_address: { get_param: cif_internal_ip_1 }
+        - ip_address: { get_param: cif_internal_v6_ip_1 }
+      allowed_address_pairs:
+        - ip_address: { get_param: cif_internal_vip_0 }
+
+
+  cif_oam_1_port_1:
+    type: OS::Neutron::Port
+    properties:
+      name:
+        str_replace:
+          template: $PREFIX$DELeth1
+          params:
+            $PREFIX: { get_param: cif_name_1 }
+            $DEL: { get_param: vcscf_name_delimeter }
+      network: { get_param: oam_net_id }
+      security_groups:
+        - { get_resource: cscf_RSG }
+      fixed_ips:
+        - ip_address: { get_param: cif_oam_ip_1 }
+      allowed_address_pairs:
+        - ip_address: { get_param: cif_oam_vip_0}
+
+  cif_ims_core_1_port_2:
+    type: OS::Neutron::Port
+    properties:
+      name:
+        str_replace:
+          template: $PREFIX$DELeth2
+          params:
+            $PREFIX: { get_param: cif_name_1 }
+            $DEL: { get_param: vcscf_name_delimeter }
+      network: { get_param: ims_core_net_id }
+      security_groups:
+        - { get_resource: cscf_RSG }
+      fixed_ips:
+        - ip_address: { get_param: cif_ims_core_v6_ip_1 }
+      allowed_address_pairs:
+        - ip_address: { get_param: cif_ims_core_v6_vip_0}
+
+  cif_oam_1_port_3:
+    type: OS::Neutron::Port
+    properties:
+      name:
+        str_replace:
+          template: $PREFIX$DELeth3
+          params:
+            $PREFIX: { get_param: cif_name_0 }
+            $DEL: { get_param: vcscf_name_delimeter }
+      network: { get_param: oam_net_id }
+      security_groups:
+        - { get_resource: cscf_RSG }
+      fixed_ips:
+        - ip_address: { get_param: cif_oam_ip_3 }
+      allowed_address_pairs:
+        - ip_address: { get_param: cif_oam_vip_1}
+        
+        
+  cif_ims_li_1_port_4:
+    type: OS::Neutron::Port
+    properties:
+      name:
+        str_replace:
+          template: $PREFIX$DELeth4
+          params:
+            $PREFIX: { get_param: cif_name_1 }
+            $DEL: { get_param: vcscf_name_delimeter }
+      network: { get_param: ims_li_v6_net_id }
+      security_groups:
+        - { get_resource: cscf_RSG }
+      fixed_ips:
+        - ip_address: { get_param: cif_ims_li_v6_ip_1 }
+      allowed_address_pairs:
+        - ip_address: { get_param: cif_ims_li_v6_vip_0}
+
+  cif_server_1:
+    type: OS::Nova::Server
+    properties:
+      availability_zone: { get_param: availability_zone_1 }
+      scheduler_hints: { group: { get_resource: cif_server_group } }
+      name: { get_param: cif_name_1 }
+      flavor: { get_param: cif_flavor_name }
+      image: { get_param: cif_image_name }
+      metadata:
+        vnf_id: {get_param: vnf_id}
+        vm_role: cif
+        vnf_name: {get_param: vnf_name}
+        vf_module_id: {get_param: vf_module_id}
+        vf_module_name:   {get_param: vf_module_name}
+      networks:
+        - port: { get_resource: cif_internal_1_port_0 }
+        - port: { get_resource: cif_oam_1_port_1 }
+        - port: { get_resource: cif_ims_core_1_port_2 }
+        - port: { get_resource: cif_oam_1_port_3 }
+        - port: { get_resource: cif_ims_li_1_port_4 }
+      block_device_mapping:
+        - device_name: vdb
+          volume_id: { get_param: cif_volume_id_1 }
+      config_drive: True
+      user_data_format: RAW
+      user_data:
+        str_replace:
+          template: |
+            DN=$dn_name
+            DUName=$du_name
+            Uuid=$uuid
+            SwRepoIp=$swrepo_ip
+            CmRepoIp=$cmrepo_ip
+            OamDnsIp=$dns_ip
+            eth0_MTU=$mtu
+            UniqueId=$dn_name/$du_name/$release/$uuid
+            OAMUnitInternalIp=$oam_unit_ip
+            NodeIp=$node_ip
+            Netmask=$netmask
+            Gateway=$oam_unit_ip
+            NodeType=CIF
+            DUType=CSCF
+            Release=$release
+            SwRepoPort=5571
+            CmRepoPort=8051
+            LbGroupId=1
+            HaGroupId=1
+            NodeName=$instance_name
+          params:
+            $dn_name: { get_param: vcscf_dn}
+            $du_name: { get_param: vcscf_du }
+            $cmrepo_ip: { get_param: vcscf_cmrepo_address }
+            $swrepo_ip: { get_param: vcscf_swrepo_address }
+            $oam_unit_ip: { get_param: oam_internal_vip_0 }
+            $netmask: { get_param: vcscf_internal_netmask }
+            $release: { get_param: vcscf_release }
+            $mtu: { get_param: vcscf_internal_network_mtu }
+            $dns_ip: { get_param: vcscf_dns_address }
+            $uuid: { get_param: cif_uuid_1 }
+            $node_ip: { get_param: cif_internal_ip_1 }
+            $instance_name: { get_param: cif_name_1 }
+
+  lbd_internal_0_port_0:
+    type: OS::Neutron::Port
+    depends_on:
+      - cscf_internal_subnet_0
+    properties:
+      name:
+        str_replace:
+          template: $PREFIX$DELeth0
+          params:
+            $PREFIX: { get_param: lbd_name_0 }
+            $DEL: { get_param: vcscf_name_delimeter }
+      network: { get_resource: cscf_internal_network_0 }
+      security_groups:
+        - { get_resource: cscf_RSG }
+      fixed_ips:
+        - ip_address: { get_param: lbd_internal_ip_0 }
+
+  lbd_dpdk_0_port_1:
+    type: OS::Neutron::Port
+    depends_on:
+      - cscf_internal_dpdk_subnet_0
+    properties:
+      name:
+        str_replace:
+          template: $PREFIX$DELeth1
+          params:
+            $PREFIX: { get_param: lbd_name_0 }
+            $DEL: { get_param: vcscf_name_delimeter }
+      network: { get_resource: cscf_internal_dpdk_network_0 }
+      security_groups:
+        - { get_resource: cscf_RSG }
+      fixed_ips:
+        - ip_address: { get_param: lbd_internal_dpdk_ip_0 }
+      allowed_address_pairs:
+        - ip_address: "0.0.0.0/1"
+        - ip_address: "128.0.0.0/1"
+        - ip_address: "::/1"
+        - ip_address: "8000::/1"
+
+  lbd_ims_core_0_port_2:
+    type: OS::Neutron::Port
+    properties:
+      name:
+        str_replace:
+          template: $PREFIX$DELeth2
+          params:
+            $PREFIX: { get_param: lbd_name_0 }
+            $DEL: { get_param: vcscf_name_delimeter }
+      network: { get_param: ims_core_net_id }
+      security_groups:
+        - { get_resource: cscf_RSG }
+      fixed_ips:
+        - ip_address: { get_param: lbd_ims_core_v6_ip_0 }
+      allowed_address_pairs:
+        - ip_address: { get_param: lbd_ims_core_v6_vip_0}
+
+  lbd_server_0:
+    type: OS::Nova::Server
+    properties:
+      availability_zone: { get_param: availability_zone_0 }
+      scheduler_hints: { group: { get_resource: lbd_server_group } }
+      name: { get_param: lbd_name_0 }
+      flavor: { get_param: lbd_flavor_name }
+      image: { get_param: lbd_image_name }
+      metadata:
+        vnf_id: {get_param: vnf_id}
+        vm_role: lbd
+        vnf_name: {get_param: vnf_name}
+        vf_module_id: {get_param: vf_module_id}
+        vf_module_name:   {get_param: vf_module_name}
+      networks:
+        - port: { get_resource: lbd_internal_0_port_0 }
+        - port: { get_resource: lbd_dpdk_0_port_1 }
+        - port: { get_resource: lbd_ims_core_0_port_2 }
+      config_drive: True
+      user_data_format: RAW
+      user_data:
+        str_replace:
+          template: |
+            DN=$dn_name
+            DUName=$du_name
+            Uuid=$uuid
+            SwRepoIp=$swrepo_ip
+            CmRepoIp=$cmrepo_ip
+            OamDnsIp=$dns_ip
+            eth0_MTU=$mtu
+            eth1_MTU=$mtu
+            UniqueId=$dn_name/$du_name/$release/$uuid
+            OAMUnitInternalIp=$oam_unit_ip
+            NodeIp=$node_ip
+            Netmask=$netmask
+            Gateway=$oam_unit_ip
+            NodeType=L2TD
+            DUType=CSCF
+            Release=$release
+            SwRepoPort=5571
+            CmRepoPort=8051
+            LbGroupId=1
+            HaGroupId=1
+            NodeName=$instance_name
+          params:
+            $dn_name: { get_param: vcscf_dn}
+            $du_name: { get_param: vcscf_du }
+            $cmrepo_ip: { get_param: vcscf_cmrepo_address }
+            $swrepo_ip: { get_param: vcscf_swrepo_address }
+            $netmask: { get_param: vcscf_internal_netmask }
+            $release: { get_param: vcscf_release }
+            $mtu: { get_param: vcscf_internal_network_mtu }
+            $oam_unit_ip: { get_param: oam_internal_vip_0 }
+            $dns_ip: { get_param: vcscf_dns_address }
+            $uuid: { get_param: lbd_uuid_0 }
+            $node_ip: { get_param: lbd_internal_ip_0 }
+            $instance_name: { get_param: lbd_name_0 }
+
+  lbd_internal_1_port_0:
+    type: OS::Neutron::Port
+    depends_on:
+      - cscf_internal_subnet_0
+    properties:
+      name:
+        str_replace:
+          template: $PREFIX$DELeth0
+          params:
+            $PREFIX: { get_param: lbd_name_1 }
+            $DEL: { get_param: vcscf_name_delimeter }
+      network: { get_resource: cscf_internal_network_0 }
+      security_groups:
+        - { get_resource: cscf_RSG }
+      fixed_ips:
+        - ip_address: { get_param: lbd_internal_ip_1 }
+
+  lbd_dpdk_1_port_1:
+    type: OS::Neutron::Port
+    depends_on:
+      - cscf_internal_dpdk_subnet_0
+    properties:
+      name:
+        str_replace:
+          template: $PREFIX$DELeth1
+          params:
+            $PREFIX: { get_param: lbd_name_1 }
+            $DEL: { get_param: vcscf_name_delimeter }
+      network: { get_resource: cscf_internal_dpdk_network_0 }
+      security_groups:
+        - { get_resource: cscf_RSG }
+      fixed_ips:
+        - ip_address: { get_param: lbd_internal_dpdk_ip_1 }
+      allowed_address_pairs:
+        - ip_address: "0.0.0.0/1"
+        - ip_address: "128.0.0.0/1"
+        - ip_address: "::/1"
+        - ip_address: "8000::/1"
+
+  lbd_ims_core_1_port_2:
+    type: OS::Neutron::Port
+    properties:
+      name:
+        str_replace:
+          template: $PREFIX$DELeth2
+          params:
+            $PREFIX: { get_param: lbd_name_1 }
+            $DEL: { get_param: vcscf_name_delimeter }
+      network: { get_param: ims_core_net_id }
+      security_groups:
+        - { get_resource: cscf_RSG }
+      fixed_ips:
+        - ip_address: { get_param: lbd_ims_core_v6_ip_1 }
+      allowed_address_pairs:
+        - ip_address: { get_param: lbd_ims_core_v6_vip_0}
+
+  lbd_server_1:
+    type: OS::Nova::Server
+    properties:
+      availability_zone: { get_param: availability_zone_1 }
+      scheduler_hints: { group: { get_resource: lbd_server_group } }
+      name: { get_param: lbd_name_1 }
+      flavor: { get_param: lbd_flavor_name }
+      image: { get_param: lbd_image_name }
+      metadata:
+        vnf_id: {get_param: vnf_id}
+        vm_role: lbd
+        vnf_name: {get_param: vnf_name}
+        vf_module_id: {get_param: vf_module_id}
+        vf_module_name:   {get_param: vf_module_name}
+      networks:
+        - port: { get_resource: lbd_internal_1_port_0 }
+        - port: { get_resource: lbd_dpdk_1_port_1 }
+        - port: { get_resource: lbd_ims_core_1_port_2 }
+      config_drive: True
+      user_data_format: RAW
+      user_data:
+        str_replace:
+          template: |
+            DN=$dn_name
+            DUName=$du_name
+            Uuid=$uuid
+            SwRepoIp=$swrepo_ip
+            CmRepoIp=$cmrepo_ip
+            OamDnsIp=$dns_ip
+            eth0_MTU=$mtu
+            eth1_MTU=$mtu
+            UniqueId=$dn_name/$du_name/$release/$uuid
+            OAMUnitInternalIp=$oam_unit_ip
+            NodeIp=$node_ip
+            Netmask=$netmask
+            Gateway=$oam_unit_ip
+            NodeType=L2TD
+            DUType=CSCF
+            Release=$release
+            SwRepoPort=5571
+            CmRepoPort=8051
+            LbGroupId=1
+            HaGroupId=1
+            NodeName=$instance_name
+          params:
+            $dn_name: { get_param: vcscf_dn}
+            $du_name: { get_param: vcscf_du }
+            $cmrepo_ip: { get_param: vcscf_cmrepo_address }
+            $swrepo_ip: { get_param: vcscf_swrepo_address }
+            $netmask: { get_param: vcscf_internal_netmask }
+            $release: { get_param: vcscf_release }
+            $mtu: { get_param: vcscf_internal_network_mtu }
+            $oam_unit_ip: { get_param: oam_internal_vip_0 }
+            $dns_ip: { get_param: vcscf_dns_address }
+            $uuid: { get_param: lbd_uuid_1 }
+            $node_ip: { get_param: lbd_internal_ip_1 }
+            $instance_name: { get_param: lbd_name_1 }
+
+  cdi_internal_0_port_0:
+    type: OS::Neutron::Port
+    depends_on:
+      - cscf_internal_subnet_0
+      - cscf_internal_subnet_v6_0
+    properties:
+      name:
+        str_replace:
+          template: $PREFIX$DELeth0
+          params:
+            $PREFIX: { get_param: cdi_name_0 }
+            $DEL: { get_param: vcscf_name_delimeter }
+      network: { get_resource: cscf_internal_network_0 }
+      security_groups:
+        - { get_resource: cscf_RSG }
+      fixed_ips:
+        - ip_address: { get_param: cdi_internal_ip_0 }
+        - ip_address: { get_param: cdi_internal_v6_ip_0 }
+      allowed_address_pairs:
+        - ip_address: "0.0.0.0/1"
+        - ip_address: "128.0.0.0/1"
+        - ip_address: "::/1"
+        - ip_address: "8000::/1"
+
+  cdi_ims_core_0_port_1:
+    type: OS::Neutron::Port
+    properties:
+      name:
+        str_replace:
+          template: $PREFIX$DELeth1
+          params:
+            $PREFIX: { get_param: cdi_name_0 }
+            $DEL: { get_param: vcscf_name_delimeter }
+      network: { get_param: ims_core_net_id }
+      security_groups:
+        - { get_resource: cscf_RSG }
+      fixed_ips :
+        - ip_address: { get_param: cdi_ims_core_v6_ip_0 }
+      allowed_address_pairs:
+        - ip_address: { get_param: cdi_ims_core_v6_vip_0}
+
+  cdi_server_0:
+    type: OS::Nova::Server
+    properties:
+      availability_zone: { get_param: availability_zone_0 }
+      scheduler_hints: { group: { get_resource: cdi_server_group } }
+      name: { get_param: cdi_name_0 }
+      flavor: { get_param: cdi_flavor_name }
+      image: { get_param: cdi_image_name }
+      metadata:
+        vnf_id: {get_param: vnf_id}
+        vm_role: cdi
+        vnf_name: {get_param: vnf_name}
+        vf_module_id: {get_param: vf_module_id}
+        vf_module_name:   {get_param: vf_module_name}
+      networks:
+        - port: { get_resource: cdi_internal_0_port_0 }
+        - port: { get_resource: cdi_ims_core_0_port_1 }
+      config_drive: True
+      user_data_format: RAW
+      user_data:
+        str_replace:
+          template: |
+            DN=$dn_name
+            DUName=$du_name
+            Uuid=$uuid
+            SwRepoIp=$swrepo_ip
+            CmRepoIp=$cmrepo_ip
+            OamDnsIp=$dns_ip
+            eth0_MTU=$mtu
+            UniqueId=$dn_name/$du_name/$release/$uuid
+            OAMUnitInternalIp=$oam_unit_ip
+            NodeIp=$node_ip
+            Netmask=$netmask
+            Gateway=$oam_unit_ip
+            NodeType=CDI
+            DUType=CSCF
+            Release=$release
+            SwRepoPort=5571
+            CmRepoPort=8051
+            LbGroupId=1
+            HaGroupId=1
+            NodeName=$instance_name
+          params:
+            $dn_name: { get_param: vcscf_dn}
+            $du_name: { get_param: vcscf_du }
+            $dns_ip: { get_param: vcscf_dns_address }
+            $cmrepo_ip: { get_param: vcscf_cmrepo_address }
+            $swrepo_ip: { get_param: vcscf_swrepo_address }
+            $oam_unit_ip: { get_param: oam_internal_vip_0 }
+            $netmask: { get_param: vcscf_internal_netmask }
+            $release: { get_param: vcscf_release }
+            $mtu: { get_param: vcscf_internal_network_mtu }
+            $node_ip: { get_param: cdi_internal_ip_0 }
+            $uuid: { get_param: cdi_uuid_0 }
+            $instance_name: { get_param: cdi_name_0 }
+
+  cdi_internal_1_port_0:
+    type: OS::Neutron::Port
+    depends_on:
+      - cscf_internal_subnet_0
+      - cscf_internal_subnet_v6_0
+    properties:
+      name:
+        str_replace:
+          template: $PREFIX$DELeth0
+          params:
+            $PREFIX: { get_param: cdi_name_1 }
+            $DEL: { get_param: vcscf_name_delimeter }
+      network: { get_resource: cscf_internal_network_0 }
+      security_groups:
+        - { get_resource: cscf_RSG }
+      fixed_ips:
+        - ip_address: { get_param: cdi_internal_ip_1 }
+        - ip_address: { get_param: cdi_internal_v6_ip_1 }
+      allowed_address_pairs:
+        - ip_address: "0.0.0.0/1"
+        - ip_address: "128.0.0.0/1"
+        - ip_address: "::/1"
+        - ip_address: "8000::/1"
+
+  cdi_ims_core_1_port_1:
+    type: OS::Neutron::Port
+    properties:
+      name:
+        str_replace:
+          template: $PREFIX$DELeth1
+          params:
+            $PREFIX: { get_param: cdi_name_1 }
+            $DEL: { get_param: vcscf_name_delimeter }
+      network: { get_param: ims_core_net_id }
+      security_groups:
+        - { get_resource: cscf_RSG }
+      fixed_ips :
+        - ip_address: { get_param: cdi_ims_core_v6_ip_1 }
+      allowed_address_pairs:
+        - ip_address: { get_param: cdi_ims_core_v6_vip_0}
+
+  cdi_server_1:
+    type: OS::Nova::Server
+    properties:
+      availability_zone: { get_param: availability_zone_1 }
+      scheduler_hints: { group: { get_resource: cdi_server_group } }
+      name: { get_param: cdi_name_1 }
+      flavor: { get_param: cdi_flavor_name }
+      image: { get_param: cdi_image_name }
+      metadata:
+        vnf_id: {get_param: vnf_id}
+        vm_role: cdi
+        vnf_name: {get_param: vnf_name}
+        vf_module_id: {get_param: vf_module_id}
+        vf_module_name:   {get_param: vf_module_name}
+      networks:
+        - port: { get_resource: cdi_internal_1_port_0 }
+        - port: { get_resource: cdi_ims_core_1_port_1 }
+      config_drive: True
+      user_data_format: RAW
+      user_data:
+        str_replace:
+          template: |
+            DN=$dn_name
+            DUName=$du_name
+            Uuid=$uuid
+            SwRepoIp=$swrepo_ip
+            CmRepoIp=$cmrepo_ip
+            OamDnsIp=$dns_ip
+            eth0_MTU=$mtu
+            UniqueId=$dn_name/$du_name/$release/$uuid
+            OAMUnitInternalIp=$oam_unit_ip
+            NodeIp=$node_ip
+            Netmask=$netmask
+            Gateway=$oam_unit_ip
+            NodeType=CDI
+            DUType=CSCF
+            Release=$release
+            SwRepoPort=5571
+            CmRepoPort=8051
+            LbGroupId=1
+            HaGroupId=1
+            NodeName=$instance_name
+          params:
+            $dn_name: { get_param: vcscf_dn}
+            $du_name: { get_param: vcscf_du }
+            $dns_ip: { get_param: vcscf_dns_address }
+            $cmrepo_ip: { get_param: vcscf_cmrepo_address }
+            $swrepo_ip: { get_param: vcscf_swrepo_address }
+            $oam_unit_ip: { get_param: oam_internal_vip_0 }
+            $netmask: { get_param: vcscf_internal_netmask }
+            $release: { get_param: vcscf_release }
+            $mtu: { get_param: vcscf_internal_network_mtu }
+            $node_ip: { get_param: cdi_internal_ip_1 }
+            $uuid: { get_param: cdi_uuid_1 }
+            $instance_name: { get_param: cdi_name_1 }
+
+  tdcore_zone_0_RRG:
+    type: OS::Heat::ResourceGroup
+    depends_on:
+      - cscf_internal_subnet_0
+      - cscf_internal_dpdk_subnet_0
+    properties:
+      count: { get_param: tdcore_zone_0_count }
+      index_var: $INDEX
+      resource_def:
+        type: nested_tdcore.yaml
+        properties:
+          index: $INDEX
+          tdcore_server_group: { get_resource: tdcore_zone_0_server_group }
+          vnf_name: { get_param: vnf_name }
+          vcscf_name_delimeter: { get_param: vcscf_name_delimeter }
+          tdcore_flavor_name: { get_param: tdcore_flavor_name }
+          tdcore_image_name: { get_param: tdcore_image_name }
+          tdcore_security_group: { get_resource: cscf_RSG }
+          internal_net_id: { get_resource: cscf_internal_network_0 }
+          internal_dpdk_net_id: { get_resource: cscf_internal_dpdk_network_0 }
+          vcscf_dn: { get_param: vcscf_dn}
+          vcscf_du: { get_param: vcscf_du }
+          vcscf_cmrepo_address: { get_param: vcscf_cmrepo_address }
+          vcscf_swrepo_address: { get_param: vcscf_swrepo_address }
+          vcscf_gateway: { get_param: oam_internal_vip_0 }
+          vcscf_internal_netmask: { get_param: vcscf_internal_netmask }
+          vcscf_release: { get_param: vcscf_release }
+          vcscf_dns_address: { get_param: vcscf_dns_address }
+          vcscf_internal_network_mtu: { get_param: vcscf_internal_network_mtu }
+          vnf_id: {get_param: vnf_id}
+          vf_module_id: {get_param: vf_module_id}
+          vf_module_name: {get_param: vf_module_name}
+          availability_zone_0: { get_param: availability_zone_0 }
+          tdcore_internal_ips: { get_param: tdcore_internal_zone_0_ips }
+          tdcore_dpdk_ips: { get_param: tdcore_dpdk_zone_0_ips }
+          tdcore_names: { get_param: tdcore_zone_0_names }
+          tdcore_uuids: { get_param: tdcore_zone_0_uuids }
+
+  tdcore_zone_1_RRG:
+    type: OS::Heat::ResourceGroup
+    depends_on:
+      - cscf_internal_subnet_0
+      - cscf_internal_dpdk_subnet_0
+    properties:
+      count: { get_param: tdcore_zone_1_count }
+      index_var: $INDEX
+      resource_def:
+        type: nested_tdcore.yaml
+        properties:
+          index: $INDEX
+          tdcore_server_group: { get_resource: tdcore_zone_1_server_group }
+          vnf_name: { get_param: vnf_name }
+          vcscf_name_delimeter: { get_param: vcscf_name_delimeter }
+          tdcore_flavor_name: { get_param: tdcore_flavor_name }
+          tdcore_image_name: { get_param: tdcore_image_name }
+          tdcore_security_group: { get_resource: cscf_RSG }
+          internal_net_id: { get_resource: cscf_internal_network_0 }
+          internal_dpdk_net_id: { get_resource: cscf_internal_dpdk_network_0 }
+          vcscf_dn: { get_param: vcscf_dn}
+          vcscf_du: { get_param: vcscf_du }
+          vcscf_cmrepo_address: { get_param: vcscf_cmrepo_address }
+          vcscf_swrepo_address: { get_param: vcscf_swrepo_address }
+          vcscf_gateway: { get_param: oam_internal_vip_0 }
+          vcscf_internal_netmask: { get_param: vcscf_internal_netmask }
+          vcscf_release: { get_param: vcscf_release }
+          vcscf_dns_address: { get_param: vcscf_dns_address }
+          vcscf_internal_network_mtu: { get_param: vcscf_internal_network_mtu }
+          vnf_id: {get_param: vnf_id}
+          vf_module_id: {get_param: vf_module_id}
+          vf_module_name: {get_param: vf_module_name}
+          availability_zone_0: { get_param: availability_zone_1 }
+          tdcore_internal_ips: { get_param: tdcore_internal_zone_1_ips }
+          tdcore_dpdk_ips: { get_param: tdcore_dpdk_zone_1_ips }
+          tdcore_names: { get_param: tdcore_zone_1_names }
+          tdcore_uuids: { get_param: tdcore_zone_1_uuids }
+
+  cscf_zone_0_RRG:
+    type: OS::Heat::ResourceGroup
+    depends_on:
+      - cscf_internal_subnet_0
+      - cscf_internal_subnet_v6_0
+    properties:
+      count: { get_param: cscf_zone_0_count }
+      index_var: $INDEX
+      resource_def:
+        type: nested_cscf.yaml
+        properties:
+          index: $INDEX
+          vnf_name: { get_param: vnf_name }
+          vcscf_name_delimeter: { get_param: vcscf_name_delimeter }
+          cscf_flavor_name: { get_param: cscf_flavor_name }
+          cscf_image_name: { get_param: cscf_image_name }
+          cscf_security_group: { get_resource: cscf_RSG }
+          internal_net_id: { get_resource: cscf_internal_network_0 }
+          vcscf_dn: { get_param: vcscf_dn}
+          vcscf_du: { get_param: vcscf_du }
+          vcscf_cmrepo_address: { get_param: vcscf_cmrepo_address }
+          vcscf_swrepo_address: { get_param: vcscf_swrepo_address }
+          vcscf_gateway: { get_param: oam_internal_vip_0 }
+          vcscf_internal_netmask: { get_param: vcscf_internal_netmask }
+          vcscf_release: { get_param: vcscf_release }
+          vcscf_dns_address: { get_param: vcscf_dns_address }
+          vcscf_internal_network_mtu: { get_param: vcscf_internal_network_mtu }
+          vnf_id: {get_param: vnf_id}
+          vf_module_id: {get_param: vf_module_id}
+          vf_module_name: {get_param: vf_module_name}
+          availability_zone_0 : { get_param: availability_zone_0 }
+          cscf_internal_ips: { get_param: cscf_internal_zone_0_ips }
+          cscf_internal_v6_ips: { get_param: cscf_internal_zone_0_v6_ips }
+          cscf_names: { get_param: cscf_zone_0_names }
+          cscf_uuids: { get_param: cscf_zone_0_uuids }
+
+  cscf_zone_1_RRG:
+    type: OS::Heat::ResourceGroup
+    depends_on:
+      - cscf_internal_subnet_0
+      - cscf_internal_subnet_v6_0
+    properties:
+      count: { get_param: cscf_zone_1_count }
+      index_var: $INDEX
+      resource_def:
+        type: nested_cscf.yaml
+        properties:
+          index: $INDEX
+          vnf_name: { get_param: vnf_name }
+          vcscf_name_delimeter: { get_param: vcscf_name_delimeter }
+          cscf_flavor_name: { get_param: cscf_flavor_name }
+          cscf_image_name: { get_param: cscf_image_name }
+          cscf_security_group: { get_resource: cscf_RSG }
+          internal_net_id: { get_resource: cscf_internal_network_0 }
+          vcscf_dn: { get_param: vcscf_dn}
+          vcscf_du: { get_param: vcscf_du }
+          vcscf_cmrepo_address: { get_param: vcscf_cmrepo_address }
+          vcscf_swrepo_address: { get_param: vcscf_swrepo_address }
+          vcscf_gateway: { get_param: oam_internal_vip_0 }
+          vcscf_internal_netmask: { get_param: vcscf_internal_netmask }
+          vcscf_release: { get_param: vcscf_release }
+          vcscf_dns_address: { get_param: vcscf_dns_address }
+          vcscf_internal_network_mtu: { get_param: vcscf_internal_network_mtu }
+          vnf_id: {get_param: vnf_id}
+          vf_module_id: {get_param: vf_module_id}
+          vf_module_name: {get_param: vf_module_name}
+          cscf_internal_ips: { get_param: cscf_internal_zone_1_ips }
+          cscf_internal_v6_ips: { get_param: cscf_internal_zone_1_v6_ips }
+          cscf_names: { get_param: cscf_zone_1_names }
+          cscf_uuids: { get_param: cscf_zone_1_uuids }
+          availability_zone_0 : { get_param: availability_zone_1 }
+
+outputs:
+  internal_net_id:
+    description: internal network
+    value: {get_resource: cscf_internal_network_0}
+
+  internal_dpdk_net_id:
+    description: dpdk network
+    value: {get_resource: cscf_internal_dpdk_network_0}
+
+  cscf_security_group:
+    description: cscf security group
+    value: {get_resource: cscf_RSG}
+
+  tdcore_zone_0_server_group:
+    description: tdcore zone 0 server group name/id
+    value: {get_resource: tdcore_zone_0_server_group}
+
+  tdcore_zone_1_server_group:
+    description: tdcore zone 1 server group name/id
+    value: {get_resource: tdcore_zone_1_server_group}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/duplicateReqs/in/base_cscf_volume.env b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/duplicateReqs/in/base_cscf_volume.env
new file mode 100644 (file)
index 0000000..68c2dd1
--- /dev/null
@@ -0,0 +1,19 @@
+## Copyright:: Nokia Corporation 2017
+## Note: Nokia VM HOT file for CFX
+## Name: "base_cscf_volume.env"
+## Date: 20 Mar 2017
+## Kilo Version
+parameters:
+
+# PSEUDO CONSTANTS
+# -----------------------------------------------------------------------------
+  cif_volume_size_0: 300
+  oam_volume_size_0: 300
+  vcscf_name_delimeter: "_"
+
+# SITE SPECIFIC
+# -----------------------------------------------------------------------------
+#  vnf_name: CSCF0001
+  # storage availability zones
+#  availability_zone_0: zone1
+#  availability_zone_1: zone2
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/duplicateReqs/in/base_cscf_volume.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/duplicateReqs/in/base_cscf_volume.yaml
new file mode 100644 (file)
index 0000000..cf0bd8b
--- /dev/null
@@ -0,0 +1,105 @@
+## Copyright:: Nokia Corporation 2017
+## Note: Nokia VM HOT file for CFX
+## Name: "base_cscf_volume.yaml"
+## Date: 20 Mar 2017
+## Kilo Version
+heat_template_version: 2015-04-30
+
+description: Volume template for CFX
+
+parameters:
+  vnf_name:
+    type: string
+    description: Unique name for this VF instance
+
+  vcscf_name_delimeter:
+    type: string
+    description: 'delimeter used in concatenating different words while naming (ex: "-","_",".",...)'
+    constraints:
+      - allowed_values: [ '-', '', '_', '.']
+
+  availability_zone_0:
+    type: string
+    description: Storage availability zone for volume of first vm
+
+  availability_zone_1:
+    type: string
+    description: Storage availability zone for volume of second vm
+
+  cif_volume_size_0:
+    type: number
+    description: Size of Volume for cif VMs
+    constraints:
+      - range: { min: 1, max: 300 }
+
+  oam_volume_size_0:
+    type: number
+    description: Size of Volume for oam VMs
+    constraints:
+      - range: { min: 1, max: 300 }
+
+resources:
+  cif_volume_0:
+    type: OS::Cinder::Volume
+    properties:
+      size: { get_param: cif_volume_size_0 }
+      availability_zone: { get_param: availability_zone_0}
+      name:
+        str_replace:
+          template: "$VNF$DELcif$DELvolume$DEL0"
+          params:
+            $VNF: { get_param: vnf_name }
+            $DEL: { get_param: vcscf_name_delimeter }
+
+  cif_volume_1:
+    type: OS::Cinder::Volume
+    properties:
+      availability_zone: { get_param: availability_zone_1}
+      size: { get_param: cif_volume_size_0 }
+      name:
+        str_replace:
+          template: "$VNF$DELcif$DELvolume$DEL1"
+          params:
+            $VNF: { get_param: vnf_name }
+            $DEL: { get_param: vcscf_name_delimeter }
+
+  oam_volume_0:
+    type: OS::Cinder::Volume
+    properties:
+      size: { get_param: oam_volume_size_0 }
+      availability_zone: { get_param: availability_zone_0}
+      name:
+        str_replace:
+          template: "$VNF$DELoam$DELvolume$DEL0"
+          params:
+            $VNF: { get_param: vnf_name }
+            $DEL: { get_param: vcscf_name_delimeter }
+
+  oam_volume_1:
+    type: OS::Cinder::Volume
+    properties:
+      size: { get_param: oam_volume_size_0 }
+      availability_zone: { get_param: availability_zone_1}
+      name:
+        str_replace:
+          template: "$VNF$DELoam$DELvolume$DEL1"
+          params:
+            $VNF: { get_param: vnf_name }
+            $DEL: { get_param: vcscf_name_delimeter }
+
+outputs:
+  cif_volume_id_0:
+    description: volume id for first cif
+    value: {get_resource: cif_volume_0}
+
+  cif_volume_id_1:
+    description: volume id for second cif
+    value: {get_resource: cif_volume_1}
+
+  oam_volume_id_0:
+    description: volume id for first oam
+    value: {get_resource: oam_volume_0}
+
+  oam_volume_id_1:
+    description: volume id for second oam
+    value: {get_resource: oam_volume_1}
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/duplicateReqs/in/nested_cscf.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/duplicateReqs/in/nested_cscf.yaml
new file mode 100644 (file)
index 0000000..f911be6
--- /dev/null
@@ -0,0 +1,183 @@
+## Copyright:: Nokia Corporation 2017
+## Note: Nokia VM HOT file for CFX
+## Name: "cscf.yaml"
+## Date: 20 Mar 2017
+## Kilo Version
+heat_template_version: 2015-04-30
+
+description: IMS CSCF
+
+parameters:
+
+  vcscf_name_delimeter:
+    type: string
+    description: 'delimeter used in concatenating different words while naming (ex: "-","_",".",...)'
+    constraints:
+      - allowed_values: [ '-', '', '_', '.']
+
+  vnf_name:
+    type: string
+    description: Unique name for this VF instance
+
+  vnf_id:
+    type: string
+    description: Unique ID for this VF instance
+
+  vf_module_name:
+    type: string
+    description: Unique name for this VF Module instance
+
+  vf_module_id:
+    type: string
+    description: Unique ID for this VF Module instance
+
+  cscf_security_group:
+    type: string
+    description: security group
+
+  cscf_flavor_name:
+    type: string
+    description: flavor name
+
+  cscf_image_name:
+    type: string
+    description: image name
+
+  internal_net_id:
+    type: string
+    description: internal network name/uuid
+
+  vcscf_internal_netmask:
+    type: string
+    description: internal netmask
+
+  vcscf_release:
+    type: string
+    description: "IMS release"
+
+  vcscf_dn:
+    type: string
+    description: "DN name"
+
+  vcscf_du:
+    type: string
+    description: "DU name"
+
+  vcscf_cmrepo_address:
+    type: string
+    description: "CMRepo IP or FQDN"
+
+  vcscf_swrepo_address:
+    type: string
+    description: SWRepo IP or FQDN
+
+  vcscf_dns_address:
+    type: string
+    description: DNS server IP
+
+  vcscf_internal_network_mtu:
+    type: number
+    description: MTU for internal network interface (eth0)
+    constraints:
+      - range: { min: 1000, max: 9100 }
+
+  vcscf_gateway:
+    type: string
+    description: OAM unit cipa ip
+
+  cscf_internal_ips:
+    type: comma_delimited_list
+    description: "List of Internal Lan IPs for CSCF instances"
+
+  cscf_internal_v6_ips:
+    type: comma_delimited_list
+    description: "List of Internal Lan v6 IPs for CSCF instances"
+
+  cscf_names:
+    type: comma_delimited_list
+    description: "List of instance names for CSCF instances"
+
+  cscf_uuids:
+    type: comma_delimited_list
+    description: "List of UUIDs generated by cmrepo for CSCF instances"
+
+  availability_zone_0:
+    type: string
+    description: Availability zone name for CSCF instances.
+
+  index:
+    type: number
+    description: index
+    constraints:
+      - range: { min: 0, max: 119 }
+
+resources:
+
+  cscf_internal_0_port_0:
+    type: OS::Neutron::Port
+    properties:
+      name:
+        str_replace:
+          template: $PREFIX$DELeth0
+          params:
+            $PREFIX: { get_param: [ cscf_names, { get_param: index } ] }
+            $DEL: { get_param: vcscf_name_delimeter }
+      network: { get_param: internal_net_id }
+      security_groups:
+        - { get_param: cscf_security_group }
+      fixed_ips:
+        - ip_address: { get_param: [ cscf_internal_ips, { get_param: index } ] }
+        - ip_address: { get_param: [ cscf_internal_v6_ips, { get_param: index } ] }
+
+  cscf_server_0:
+    type: OS::Nova::Server
+    properties:
+      availability_zone: { get_param: availability_zone_0 }
+      name: { get_param: [ cscf_names, { get_param: index } ] }
+      flavor: { get_param: cscf_flavor_name }
+      image: { get_param: cscf_image_name }
+      metadata:
+        vnf_id: {get_param: vnf_id}
+        vm_role: cscf
+        vnf_name: {get_param: vnf_name}
+        vf_module_id: {get_param: vf_module_id}
+        vf_module_name:   {get_param: vf_module_name}
+      networks:
+        - port: { get_resource: cscf_internal_0_port_0 }
+      config_drive: True
+      user_data_format: RAW
+      user_data:
+        str_replace:
+          template: |
+            DN=$dn_name
+            DUName=$du_name
+            Uuid=$uuid
+            SwRepoIp=$swrepo_ip
+            CmRepoIp=$cmrepo_ip
+            OamDnsIp=$dns_ip
+            eth0_MTU=$mtu
+            UniqueId=$dn_name/$du_name/$release/$uuid
+            OAMUnitInternalIp=$oam_unit_ip
+            NodeIp=$node_ip
+            Netmask=$netmask
+            Gateway=$oam_unit_ip
+            NodeType=CSCF
+            DUType=CSCF
+            Release=$release
+            SwRepoPort=5571
+            CmRepoPort=8051
+            LbGroupId=1
+            NodeName=$instance_name
+          params:
+            $dn_name: { get_param: vcscf_dn }
+            $du_name: { get_param: vcscf_du }
+            $uuid: { get_param: [ cscf_uuids, { get_param: index } ] }
+            $dns_ip: { get_param: vcscf_dns_address }
+            $cmrepo_ip: { get_param: vcscf_cmrepo_address }
+            $swrepo_ip: { get_param: vcscf_swrepo_address }
+            $oam_unit_ip: { get_param: vcscf_gateway }
+            $netmask: { get_param: vcscf_internal_netmask }
+            $release: { get_param: vcscf_release }
+            $mtu: { get_param: vcscf_internal_network_mtu }
+            $node_ip: { get_param: [ cscf_internal_ips, { get_param: index } ] }
+            $instance_name: { get_param: [ cscf_names, { get_param: index } ] }
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/duplicateReqs/in/nested_tdcore.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/duplicateReqs/in/nested_tdcore.yaml
new file mode 100644 (file)
index 0000000..2baec50
--- /dev/null
@@ -0,0 +1,213 @@
+## Copyright:: Nokia Corporation 2017
+## Note: Nokia VM HOT file for CFX
+## Name: "tdcore.yaml"
+## Date: 20 Mar 2017
+## Kilo Version
+heat_template_version: 2015-04-30
+
+description: IMS TDCORE VM
+
+parameters:
+
+  vcscf_name_delimeter:
+    type: string
+    description: 'delimeter used in concatenating different words while naming (ex: "-","_",".",...)'
+    constraints:
+      - allowed_values: [ '-', '', '_', '.']
+
+  vnf_name:
+    type: string
+    description: Unique name for this VF instance
+
+  vnf_id:
+    type: string
+    description: Unique ID for this VF instance
+
+  vf_module_name:
+    type: string
+    description: Unique name for this VF Module instance
+
+  vf_module_id:
+    type: string
+    description: Unique ID for this VF Module instance
+
+  tdcore_security_group:
+    type: string
+    description: security group
+
+  tdcore_flavor_name:
+    type: string
+    description: flavor name
+
+  tdcore_image_name:
+    type: string
+    description: image name
+
+  internal_net_id:
+    type: string
+    description: internal network name/uuid
+
+  internal_dpdk_net_id:
+    type: string
+    description: internal dpdk network name/uuid
+
+  vcscf_internal_netmask:
+    type: string
+    description: internal netmask
+
+  vcscf_release:
+    type: string
+    description: "IMS release"
+
+  vcscf_dn:
+    type: string
+    description: "DN name"
+
+  vcscf_du:
+    type: string
+    description: "DU name"
+
+  vcscf_cmrepo_address:
+    type: string
+    description: "CMRepo IP or FQDN"
+
+  vcscf_swrepo_address:
+    type: string
+    description: SWRepo IP or FQDN
+
+  vcscf_dns_address:
+    type: string
+    description: DNS server IP
+
+  vcscf_internal_network_mtu:
+    type: number
+    description: MTU for internal network interface (eth0)
+    constraints:
+      - range: { min: 1000, max: 9100 }
+
+  vcscf_gateway:
+    type: string
+    description: OAM unit virtual ip
+
+  tdcore_names:
+    type: comma_delimited_list
+    description: "List of instance names for TDCORE instances"
+
+  tdcore_internal_ips:
+    type: comma_delimited_list
+    description: "List of Internal Lan IPs for TDCORE instances"
+
+  tdcore_dpdk_ips:
+    type: comma_delimited_list
+    description: "List of DPDK Lan IPs for TDCORE instances"
+
+  tdcore_uuids:
+    type: comma_delimited_list
+    description: "List of UUIDs generated by cmrepo for TDCORE instances"
+
+  availability_zone_0:
+    type: string
+    description: Availability zone name.
+
+  tdcore_server_group:
+    type: string
+    description: server group name/id
+
+  index:
+    type: number
+    description: index
+    constraints:
+      - range: { min: 0, max: 7 }
+
+resources:
+
+  tdcore_internal_0_port_0:
+    type: OS::Neutron::Port
+    properties:
+      name:
+        str_replace:
+          template: $PREFIX$DELeth0
+          params:
+            $PREFIX: { get_param: [ tdcore_names, { get_param: index } ] }
+            $DEL: { get_param: vcscf_name_delimeter }
+      network: { get_param: internal_net_id }
+      security_groups:
+        - { get_param: tdcore_security_group }
+      fixed_ips:
+        - ip_address: { get_param: [ tdcore_internal_ips, { get_param: index } ] }
+
+  tdcore_dpdk_0_port_1:
+    type: OS::Neutron::Port
+    properties:
+      name:
+        str_replace:
+          template: $PREFIX$DELeth1
+          params:
+            $PREFIX: { get_param: [ tdcore_names, { get_param: index } ] }
+            $DEL: { get_param: vcscf_name_delimeter }
+      network: { get_param: internal_dpdk_net_id }
+      security_groups:
+        - { get_param: tdcore_security_group }
+      fixed_ips:
+        - ip_address: { get_param: [ tdcore_dpdk_ips, { get_param: index } ] }
+      allowed_address_pairs:
+        - ip_address: "0.0.0.0/1"
+        - ip_address: "128.0.0.0/1"
+        - ip_address: "::/1"
+        - ip_address: "8000::/1"
+
+  tdcore_server_0:
+    type: OS::Nova::Server
+    properties:
+      availability_zone: { get_param: availability_zone_0 }
+      scheduler_hints: { group: { get_param: tdcore_server_group } }
+      name: { get_param: [ tdcore_names, { get_param: index } ] }
+      flavor: { get_param: tdcore_flavor_name }
+      image: { get_param: tdcore_image_name }
+      metadata:
+        vnf_id: {get_param: vnf_id}
+        vm_role: tdcore
+        vnf_name: {get_param: vnf_name}
+        vf_module_id: {get_param: vf_module_id}
+        vf_module_name:   {get_param: vf_module_name}
+      networks:
+        - port: { get_resource: tdcore_internal_0_port_0 }
+        - port: { get_resource: tdcore_dpdk_0_port_1 }
+      config_drive: True
+      user_data_format: RAW
+      user_data:
+        str_replace:
+          template: |
+            DN=$dn_name
+            DUName=$du_name
+            Uuid=$uuid
+            SwRepoIp=$swrepo_ip
+            CmRepoIp=$cmrepo_ip
+            OamDnsIp=$dns_ip
+            eth0_MTU=$mtu
+            eth1_MTU=$mtu
+            UniqueId=$dn_name/$du_name/$release/$uuid
+            OAMUnitInternalIp=$oam_unit_ip
+            NodeIp=$node_ip
+            Netmask=$netmask
+            Gateway=$oam_unit_ip
+            NodeType=TD_Core
+            DUType=CSCF
+            Release=$release
+            SwRepoPort=5571
+            CmRepoPort=8051
+            LbGroupId=1
+            NodeName=$instance_name
+          params:
+            $dn_name: { get_param: vcscf_dn }
+            $du_name: { get_param: vcscf_du }
+            $uuid: { get_param: [ tdcore_uuids, { get_param: index } ] }
+            $dns_ip: { get_param: vcscf_dns_address }
+            $cmrepo_ip: { get_param: vcscf_cmrepo_address }
+            $swrepo_ip: { get_param: vcscf_swrepo_address }
+            $oam_unit_ip: { get_param: vcscf_gateway }
+            $netmask: { get_param: vcscf_internal_netmask }
+            $release: { get_param: vcscf_release }
+            $mtu: { get_param: vcscf_internal_network_mtu }
+            $node_ip: { get_param: [ tdcore_internal_ips, { get_param: index } ] }
+            $instance_name: { get_param: [ tdcore_names, { get_param: index } ] }
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/duplicateReqs/out/MainServiceTemplate.yaml b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/test/resources/mock/services/heattotosca/fulltest/nestedSingleCompute/duplicateReqs/out/MainServiceTemplate.yaml
new file mode 100644 (file)
index 0000000..483ee0c
--- /dev/null
@@ -0,0 +1,3166 @@
+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:
+    cif_internal_ip_0:
+      hidden: false
+      immutable: false
+      type: string
+      description: Internal IP of CIF01 instance
+      default: 192.168.210.1
+    vcscf_release:
+      hidden: false
+      immutable: false
+      type: string
+      description: IMS release
+      default: '17.0'
+    cif_name_1:
+      hidden: false
+      immutable: false
+      type: string
+      description: CIF02 instance name
+    cif_name_0:
+      hidden: false
+      immutable: false
+      type: string
+      description: CIF01 instance name
+    cif_internal_ip_1:
+      hidden: false
+      immutable: false
+      type: string
+      description: Internal IP of CIF02 instance
+      default: 192.168.210.2
+    tdcore_zone_0_count:
+      hidden: false
+      immutable: false
+      type: float
+      description: |
+        Number of TD Core VMs to be deployed zone 0. This parameter is used to scale the TD Core instances.
+      default: 4
+      constraints:
+      - in_range:
+        - 0
+        - 8
+    lbd_internal_dpdk_vip_0:
+      hidden: false
+      immutable: false
+      type: string
+      description: Internal DPDK CIP IP of LBD
+      default: 192.168.211.181
+    lbd_ims_core_v6_vip_0:
+      hidden: false
+      immutable: false
+      type: string
+      description: IMS CORE CIPA v6 IP of LBD
+    cscf_zone_1_count:
+      hidden: false
+      immutable: false
+      type: float
+      description: |
+        Number of CSCF to be deployed on zone 1. This parameter is used to scale the cscf instances.
+      default: 18
+      constraints:
+      - in_range:
+        - 0
+        - 120
+    oam_internal_vip_0:
+      hidden: false
+      immutable: false
+      type: string
+      description: Internal CIPA IP of OAM unit
+      default: 192.168.210.3
+    cscf_image_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: CSCF server VM image name
+      default: IMS_17_0_OPENSTACK_CSCF_1701400.000
+    cif_internal_vip_0:
+      hidden: false
+      immutable: false
+      type: string
+      description: Internal CIPA IP of CIF
+      default: 192.168.210.150
+    cif_ims_core_v6_ip_0:
+      hidden: false
+      immutable: false
+      type: string
+      description: IMS CORE v6 IP of CIF01 instance
+    cif_ims_core_v6_ip_1:
+      hidden: false
+      immutable: false
+      type: string
+      description: IMS CORE v6 IP of CIF02 instance
+    oam_volume_id_1:
+      hidden: false
+      immutable: false
+      type: string
+      description: size of the cinder volume used for oam
+    oam_volume_size_0:
+      hidden: false
+      immutable: false
+      type: float
+      description: Size of Volume for oam VMs
+      default: 300
+      constraints:
+      - in_range:
+        - 1
+        - 300
+    oam_volume_id_0:
+      hidden: false
+      immutable: false
+      type: string
+      description: size of the cinder volume used for oam
+    vcscf_oam_netmask:
+      hidden: false
+      immutable: false
+      type: string
+      description: Netmask for OAM LAN
+    tdcore_zone_1_names:
+      hidden: false
+      immutable: false
+      type: list
+      description: List of instance names for TDCORE instances on zone 1
+      entry_schema:
+        type: string
+    cif_flavor_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: CSCF CIF VM flavor
+      default: ND.c4r16d38
+    vcscf_dns_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: DNS server IP
+    vcscf_internal_network_cidr:
+      hidden: false
+      immutable: false
+      type: string
+      description: CIDR for for Internal LAN
+      default: 192.168.210.0/24
+    cdi_ims_core_v6_ip_1:
+      hidden: false
+      immutable: false
+      type: string
+      description: IMS CORE LAN v6 IP of CDI02 instance
+    cdi_ims_core_v6_ip_0:
+      hidden: false
+      immutable: false
+      type: string
+      description: IMS CORE LAN v6 IP of CDI01 instance
+    cdi_flavor_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: CDI VM flavor
+      default: ND.c4r8d38
+    vcscf_default_gateway:
+      hidden: false
+      immutable: false
+      type: string
+      description: Default gateway for OAM LAN
+    tdcore_zone_0_uuids:
+      hidden: false
+      immutable: false
+      type: list
+      description: List of UUIDs generated by cmrepo for TDCORE instances on zone 0
+      entry_schema:
+        type: string
+    oam_name_1:
+      hidden: false
+      immutable: false
+      type: string
+      description: OAM02 instance name
+    oam_name_0:
+      hidden: false
+      immutable: false
+      type: string
+      description: OAM01 instance name
+    oam_name_2:
+      hidden: false
+      immutable: false
+      type: string
+      description: OAM03 instance name
+    cscf_zone_1_uuids:
+      hidden: false
+      immutable: false
+      type: list
+      description: List of UUIDs generated by cmrepo for CSCF instances on zone 1
+      entry_schema:
+        type: string
+    vf_module_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: Unique ID for this VF Module instance
+    oam_oam_ip_0:
+      hidden: false
+      immutable: false
+      type: string
+      description: OAM IP of OAM01 instance
+    cscf_internal_zone_1_ips:
+      hidden: false
+      immutable: false
+      type: list
+      description: List of Internal Lan IPs for CSCF instances on zone 1
+      default:
+      - 192.168.210.17
+      - 192.168.210.19
+      - 192.168.210.21
+      - 192.168.210.23
+      - 192.168.210.25
+      - 192.168.210.27
+      - 192.168.210.29
+      - 192.168.210.31
+      - 192.168.210.33
+      - 192.168.210.35
+      - 192.168.210.37
+      - 192.168.210.39
+      - 192.168.210.41
+      - 192.168.210.43
+      - 192.168.210.45
+      - 192.168.210.47
+      - 192.168.210.49
+      - 192.168.210.51
+      entry_schema:
+        type: string
+    cif_ims_li_v6_vip_0:
+      hidden: false
+      immutable: false
+      type: string
+      description: IMS LI CIPA v6 IP of CIF
+    oam_oam_ip_1:
+      hidden: false
+      immutable: false
+      type: string
+      description: OAM IP of OAM02 instance
+    oam_oam_ip_2:
+      hidden: false
+      immutable: false
+      type: string
+      description: OAM IP of OAM03 instance
+    vnf_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: Unique name for this VF instance
+    lbd_flavor_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: CSCF LBD VM flavor
+      default: ND.c4r16d38
+    cscf_zone_0_uuids:
+      hidden: false
+      immutable: false
+      type: list
+      description: List of UUIDs generated by cmrepo for CSCF instances on zone 0
+      entry_schema:
+        type: string
+    vf_module_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: Unique name for this VF Module instance
+    cdi_internal_ip_0:
+      hidden: false
+      immutable: false
+      type: string
+      description: Internal IP of CDI01 instance
+      default: 192.168.210.139
+    cscf_zone_0_names:
+      hidden: false
+      immutable: false
+      type: list
+      description: List of instance names for CSCF instances on zone 0
+      entry_schema:
+        type: string
+    oam_oam_vip_0:
+      hidden: false
+      immutable: false
+      type: string
+      description: OAM CIPA IP of OAM unit
+    vcscf_swrepo_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: SWRepo IP or FQDN
+    cdi_internal_ip_1:
+      hidden: false
+      immutable: false
+      type: string
+      description: Internal IP of CDI02 instance
+      default: 192.168.210.140
+    cdi_name_1:
+      hidden: false
+      immutable: false
+      type: string
+      description: CDI02 instance name
+    availability_zone_0:
+      hidden: false
+      immutable: false
+      type: string
+      description: Storage availability zone for volume of first vm
+    availability_zone_1:
+      hidden: false
+      immutable: false
+      type: string
+      description: Storage availability zone for volume of second vm
+    tdcore_image_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: TDCORE VM image name
+      default: IMS_17_0_OPENSTACK_CSCF_1701400.000
+    tdcore_flavor_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: TDCORE VM flavor
+      default: ND.c4r16d38
+    cscf_flavor_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: CSCF server VM flavor
+      default: ND.c8r16d38
+    vcscf_cmrepo_address:
+      hidden: false
+      immutable: false
+      type: string
+      description: CMRepo IP or FQDN
+    cdi_name_0:
+      hidden: false
+      immutable: false
+      type: string
+      description: CDI01 instance name
+    lbd_ims_core_v6_ip_0:
+      hidden: false
+      immutable: false
+      type: string
+      description: IMS CORE v6 IP of LBD01 instance
+    lbd_ims_core_v6_ip_1:
+      hidden: false
+      immutable: false
+      type: string
+      description: IMS CORE v6 IP of LBD02 instance
+    tdcore_internal_zone_1_ips:
+      hidden: false
+      immutable: false
+      type: list
+      description: List of Internal Lan IPs for TDCORE instances on zone 1
+      default:
+      - 192.168.210.9
+      - 192.168.210.11
+      - 192.168.210.13
+      - 192.168.210.15
+      entry_schema:
+        type: string
+    oam_net_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: Name/UUID of OAM network
+    cdi_internal_v6_vip_0:
+      hidden: false
+      immutable: false
+      type: string
+      description: Internal v6 CIPA IP of CDI
+      default: 2a00:9a00:a000:1190:0:1:1:2b8d
+    tdcore_dpdk_zone_1_ips:
+      hidden: false
+      immutable: false
+      type: list
+      description: List of DPDK Lan IPs for TDCORE instances on zone 1
+      default:
+      - 192.168.211.9
+      - 192.168.211.11
+      - 192.168.211.13
+      - 192.168.211.15
+      entry_schema:
+        type: string
+    oam_internal_ip_0:
+      hidden: false
+      immutable: false
+      type: string
+      description: Internal IP of OAM01 instance
+      default: 192.168.210.136
+    oam_internal_ip_1:
+      hidden: false
+      immutable: false
+      type: string
+      description: Internal IP of OAM01 instance
+      default: 192.168.210.137
+    cscf_zone_0_count:
+      hidden: false
+      immutable: false
+      type: float
+      description: |
+        Number of CSCF to be deployed on zone 0. This parameter is used to scale the cscf instances.
+      default: 19
+      constraints:
+      - in_range:
+        - 0
+        - 120
+    oam_internal_ip_2:
+      hidden: false
+      immutable: false
+      type: string
+      description: Internal IP of OAM01 instance
+      default: 192.168.210.138
+    cscf_zone_1_names:
+      hidden: false
+      immutable: false
+      type: list
+      description: List of instance names for CSCF instances on zone 1
+      entry_schema:
+        type: string
+    tdcore_zone_0_names:
+      hidden: false
+      immutable: false
+      type: list
+      description: List of instance names for TDCORE instances on zone 0
+      entry_schema:
+        type: string
+    lbd_uuid_0:
+      hidden: false
+      immutable: false
+      type: string
+      description: UUID generated by cmrepo for LBD01
+    lbd_uuid_1:
+      hidden: false
+      immutable: false
+      type: string
+      description: UUID generated by cmrepo for LBD02
+    cdi_internal_v6_ip_1:
+      hidden: false
+      immutable: false
+      type: string
+      description: Internal v6 IP of CDI02 instance
+      default: 2a00:9a00:a000:1190:0:1:1:2b8c
+    cdi_internal_v6_ip_0:
+      hidden: false
+      immutable: false
+      type: string
+      description: Internal v6 IP of CDI01 instance
+      default: 2a00:9a00:a000:1190:0:1:1:2b8b
+    cdi_uuid_1:
+      hidden: false
+      immutable: false
+      type: string
+      description: UUID generated by cmrepo for CDI02
+    ims_core_net_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: Name/UUID of Core network
+    cdi_uuid_0:
+      hidden: false
+      immutable: false
+      type: string
+      description: UUID generated by cmrepo for CDI01
+    vcscf_internal_network_v6_cidr:
+      hidden: false
+      immutable: false
+      type: string
+      description: CIDR for for Internal LAN v6
+      default: 2a00:9a00:a000:1190:0:1:1:2b00/120
+    oam_image_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: OAM VM image name
+      default: IMS_17_0_OPENSTACK_OAM_1701400.000
+    tdcore_zone_1_uuids:
+      hidden: false
+      immutable: false
+      type: list
+      description: List of UUIDs generated by cmrepo for TDCORE instances on zone 1
+      entry_schema:
+        type: string
+    vcscf_internal_network_mtu:
+      hidden: false
+      immutable: false
+      type: float
+      description: MTU for internal network interface (eth0)
+      default: 1500
+      constraints:
+      - in_range:
+        - 1000
+        - 9100
+    vcscf_internal_dpdk_network_cidr:
+      hidden: false
+      immutable: false
+      type: string
+      description: CIDR for for Internal LAN DPDK
+      default: 192.168.211.0/24
+    tdcore_zone_1_count:
+      hidden: false
+      immutable: false
+      type: float
+      description: |
+        Number of TD Core VMs to be deployed zone 1. This parameter is used to scale the TD Core instances.
+      default: 4
+      constraints:
+      - in_range:
+        - 0
+        - 8
+    cif_volume_size_0:
+      hidden: false
+      immutable: false
+      type: float
+      description: Size of Volume for cif VMs
+      default: 300
+      constraints:
+      - in_range:
+        - 1
+        - 300
+    oam_flavor_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: OAM VM flavor
+      default: ND.c4r32d30
+    ims_li_v6_net_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: Name/UUID of V6 LI network
+    lbd_internal_dpdk_ip_1:
+      hidden: false
+      immutable: false
+      type: string
+      description: Internal DPDK IP of LBD02 instance
+      default: 192.168.211.2
+    cif_ims_core_v6_vip_0:
+      hidden: false
+      immutable: false
+      type: string
+      description: IMS CORE v6 CIPA IP of CIF
+    lbd_internal_dpdk_ip_0:
+      hidden: false
+      immutable: false
+      type: string
+      description: Internal DPDK IP of LBD01 instance
+      default: 192.168.211.1
+    cdi_image_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: CDI VM image name
+      default: IMS_17_0_OPENSTACK_CSCF_1701400.000
+    oam_uuid_2:
+      hidden: false
+      immutable: false
+      type: string
+      description: UUID generated by cmrepo for OAM03
+    oam_uuid_1:
+      hidden: false
+      immutable: false
+      type: string
+      description: UUID generated by cmrepo for OAM02
+    oam_uuid_0:
+      hidden: false
+      immutable: false
+      type: string
+      description: UUID generated by cmrepo for OAM01
+    cif_oam_vip_0:
+      hidden: false
+      immutable: false
+      type: string
+      description: OAM CIPA IP of CIF
+    cif_internal_v6_ip_1:
+      hidden: false
+      immutable: false
+      type: string
+      description: Internal IP v6 of CIF02 instance
+      default: 2a00:9a00:a000:1190:0:1:1:2b05
+    vnf_id:
+      hidden: false
+      immutable: false
+      type: string
+      description: Unique ID for this VF instance
+    cscf_internal_zone_0_v6_ips:
+      hidden: false
+      immutable: false
+      type: list
+      description: List of Internal Lan v6 IPs for CSCF instances on zone 0
+      default:
+      - 2a00:9a00:a000:1190:0:1:1:2b10
+      - 2a00:9a00:a000:1190:0:1:1:2b12
+      - 2a00:9a00:a000:1190:0:1:1:2b14
+      - 2a00:9a00:a000:1190:0:1:1:2b16
+      - 2a00:9a00:a000:1190:0:1:1:2b18
+      - 2a00:9a00:a000:1190:0:1:1:2b1a
+      - 2a00:9a00:a000:1190:0:1:1:2b1c
+      - 2a00:9a00:a000:1190:0:1:1:2b1e
+      - 2a00:9a00:a000:1190:0:1:1:2b20
+      - 2a00:9a00:a000:1190:0:1:1:2b22
+      - 2a00:9a00:a000:1190:0:1:1:2b24
+      - 2a00:9a00:a000:1190:0:1:1:2b26
+      - 2a00:9a00:a000:1190:0:1:1:2b28
+      - 2a00:9a00:a000:1190:0:1:1:2b2a
+      - 2a00:9a00:a000:1190:0:1:1:2b2c
+      - 2a00:9a00:a000:1190:0:1:1:2b2e
+      - 2a00:9a00:a000:1190:0:1:1:2b30
+      - 2a00:9a00:a000:1190:0:1:1:2b32
+      - 2a00:9a00:a000:1190:0:1:1:2b34
+      entry_schema:
+        type: string
+    cscf_internal_zone_1_v6_ips:
+      hidden: false
+      immutable: false
+      type: list
+      description: List of Internal Lan v6 IPs for CSCF instances on zone 1
+      default:
+      - 2a00:9a00:a000:1190:0:1:1:2b11
+      - 2a00:9a00:a000:1190:0:1:1:2b13
+      - 2a00:9a00:a000:1190:0:1:1:2b15
+      - 2a00:9a00:a000:1190:0:1:1:2b17
+      - 2a00:9a00:a000:1190:0:1:1:2b19
+      - 2a00:9a00:a000:1190:0:1:1:2b1b
+      - 2a00:9a00:a000:1190:0:1:1:2b1d
+      - 2a00:9a00:a000:1190:0:1:1:2b1f
+      - 2a00:9a00:a000:1190:0:1:1:2b21
+      - 2a00:9a00:a000:1190:0:1:1:2b23
+      - 2a00:9a00:a000:1190:0:1:1:2b25
+      - 2a00:9a00:a000:1190:0:1:1:2b27
+      - 2a00:9a00:a000:1190:0:1:1:2b29
+      - 2a00:9a00:a000:1190:0:1:1:2b2b
+      - 2a00:9a00:a000:1190:0:1:1:2b2d
+      - 2a00:9a00:a000:1190:0:1:1:2b2f
+      - 2a00:9a00:a000:1190:0:1:1:2b31
+      - 2a00:9a00:a000:1190:0:1:1:2b33
+      entry_schema:
+        type: string
+    cif_internal_v6_ip_0:
+      hidden: false
+      immutable: false
+      type: string
+      description: Internal IP v6 of CIF01 instance
+      default: 2a00:9a00:a000:1190:0:1:1:2b04
+    lbd_internal_ip_1:
+      hidden: false
+      immutable: false
+      type: string
+      description: Internal IP of LBD02 instance
+      default: 192.168.210.5
+    cif_oam_vip_1:
+      hidden: false
+      immutable: false
+      type: string
+      description: OAM (LI-X1) v4 CIPA of CIF
+    lbd_internal_ip_0:
+      hidden: false
+      immutable: false
+      type: string
+      description: Internal IP of LBD01 instance
+      default: 192.168.210.4
+    cif_volume_id_0:
+      hidden: false
+      immutable: false
+      type: string
+      description: size of the cinder volume used for cif
+    cif_ims_li_v6_ip_0:
+      hidden: false
+      immutable: false
+      type: string
+      description: IMS LI v6 IP of CIF01 instance
+    cif_volume_id_1:
+      hidden: false
+      immutable: false
+      type: string
+      description: size of the cinder volume used for cif
+    cif_ims_li_v6_ip_1:
+      hidden: false
+      immutable: false
+      type: string
+      description: IMS LI v6 IP of CIF02 instance
+    lbd_image_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: CSCF LBD VM image name
+      default: IMS_17_0_OPENSTACK_CSCF_1701400.000
+    tdcore_dpdk_zone_0_ips:
+      hidden: false
+      immutable: false
+      type: list
+      description: List of DPDK Lan IPs for TDCORE instances on zone 0
+      default:
+      - 192.168.211.8
+      - 192.168.211.10
+      - 192.168.211.12
+      - 192.168.211.14
+      entry_schema:
+        type: string
+    cif_uuid_0:
+      hidden: false
+      immutable: false
+      type: string
+      description: UUID generated by cmrepo for CIF01
+    cif_uuid_1:
+      hidden: false
+      immutable: false
+      type: string
+      description: UUID generated by cmrepo for CIF02
+    cif_oam_ip_0:
+      hidden: false
+      immutable: false
+      type: string
+      description: OAM IP of CIF01 instance
+    cif_image_name:
+      hidden: false
+      immutable: false
+      type: string
+      description: CSCF CIF VM image name
+      default: IMS_17_0_OPENSTACK_CSCF_1701400.000
+    vcscf_internal_netmask:
+      hidden: false
+      immutable: false
+      type: string
+      description: Netmask for Internal LAN
+      default: 255.255.255.0
+    vcscf_name_delimeter:
+      hidden: false
+      immutable: false
+      type: string
+      description: 'delimeter used in concatenating different words while naming (ex:
+        "-","_",".",...)'
+      default: _
+      constraints:
+      - valid_values:
+        - '-'
+        - ''
+        - _
+        - .
+    cif_oam_ip_3:
+      hidden: false
+      immutable: false
+      type: string
+      description: OAM (LI-X1) v4 IP of CIF02 instance
+    cif_oam_ip_2:
+      hidden: false
+      immutable: false
+      type: string
+      description: OAM (LI-X1) v4 IP of CIF01 instance
+    cif_oam_ip_1:
+      hidden: false
+      immutable: false
+      type: string
+      description: OAM IP of CIF02 instance
+    cdi_ims_core_v6_vip_0:
+      hidden: false
+      immutable: false
+      type: string
+      description: IMS CORE LAN CIPA v6 IP of CDI
+    vcscf_dn:
+      hidden: false
+      immutable: false
+      type: string
+      description: DN name
+    vcscf_du:
+      hidden: false
+      immutable: false
+      type: string
+      description: DU name
+    cscf_internal_zone_0_ips:
+      hidden: false
+      immutable: false
+      type: list
+      description: List of Internal Lan IPs for CSCF instances on zone 0
+      default:
+      - 192.168.210.16
+      - 192.168.210.18
+      - 192.168.210.20
+      - 192.168.210.22
+      - 192.168.210.24
+      - 192.168.210.26
+      - 192.168.210.28
+      - 192.168.210.30
+      - 192.168.210.32
+      - 192.168.210.34
+      - 192.168.210.36
+      - 192.168.210.38
+      - 192.168.210.40
+      - 192.168.210.42
+      - 192.168.210.44
+      - 192.168.210.46
+      - 192.168.210.48
+      - 192.168.210.50
+      - 192.168.210.52
+      entry_schema:
+        type: string
+    tdcore_internal_zone_0_ips:
+      hidden: false
+      immutable: false
+      type: list
+      description: List of Internal Lan IPs for TDCORE instances on zone 0
+      default:
+      - 192.168.210.8
+      - 192.168.210.10
+      - 192.168.210.12
+      - 192.168.210.14
+      entry_schema:
+        type: string
+    lbd_name_1:
+      hidden: false
+      immutable: false
+      type: string
+      description: LBD02 instance name
+    lbd_name_0:
+      hidden: false
+      immutable: false
+      type: string
+      description: LBD01 instance name
+  node_templates:
+    cscf_RSG:
+      type: org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules
+      properties:
+        name:
+          str_replace:
+            template: $VNF$DELsecurity$DELgroup
+            params:
+              $DEL:
+                get_input: vcscf_name_delimeter
+              $VNF:
+                get_input: vnf_name
+        description: Allow all
+        rules:
+        - ethertype: IPv4
+          direction: ingress
+        - ethertype: IPv4
+          direction: egress
+        - ethertype: IPv6
+          direction: ingress
+        - ethertype: IPv6
+          direction: egress
+      requirements:
+      - port:
+          capability: tosca.capabilities.Attachment
+          node: cif_internal_vip_0_port
+          relationship: org.openecomp.relationships.AttachesTo
+      - port:
+          capability: tosca.capabilities.Attachment
+          node: cif_oam_vip_1_port
+          relationship: org.openecomp.relationships.AttachesTo
+      - port:
+          capability: tosca.capabilities.Attachment
+          node: cif_ims_core_v6_vip_2_port
+          relationship: org.openecomp.relationships.AttachesTo
+      - port:
+          capability: tosca.capabilities.Attachment
+          node: cif_oam_vip_3_port
+          relationship: org.openecomp.relationships.AttachesTo
+      - port:
+          capability: tosca.capabilities.Attachment
+          node: cif_ims_li_v6_vip_4_port
+          relationship: org.openecomp.relationships.AttachesTo
+      - port:
+          capability: tosca.capabilities.Attachment
+          node: lbd_internal_dpdk_vip_1_port
+          relationship: org.openecomp.relationships.AttachesTo
+      - port:
+          capability: tosca.capabilities.Attachment
+          node: lbd_ims_core_v6_vip_2_port
+          relationship: org.openecomp.relationships.AttachesTo
+      - port:
+          capability: tosca.capabilities.Attachment
+          node: cdi_internal_v6_vip_0_port
+          relationship: org.openecomp.relationships.AttachesTo
+      - port:
+          capability: tosca.capabilities.Attachment
+          node: cdi_ims_core_v6_vip_1_port
+          relationship: org.openecomp.relationships.AttachesTo
+      - port:
+          capability: tosca.capabilities.Attachment
+          node: oam_internal_vip_0_port
+          relationship: org.openecomp.relationships.AttachesTo
+      - port:
+          capability: tosca.capabilities.Attachment
+          node: oam_oam_vip_1_port
+          relationship: org.openecomp.relationships.AttachesTo
+      - port:
+          capability: attachment_oam_oam_internal_0_port
+          node: abstract_oam
+          relationship: org.openecomp.relationships.AttachesTo
+      - port:
+          capability: attachment_oam_oam_oam_0_port
+          node: abstract_oam
+          relationship: org.openecomp.relationships.AttachesTo
+      - port:
+          capability: attachment_oam_oam_internal_1_port
+          node: abstract_oam_1
+          relationship: org.openecomp.relationships.AttachesTo
+      - port:
+          capability: attachment_oam_oam_oam_1_port
+          node: abstract_oam_1
+          relationship: org.openecomp.relationships.AttachesTo
+      - port:
+          capability: attachment_oam_oam_internal_2_port
+          node: abstract_oam_2
+          relationship: org.openecomp.relationships.AttachesTo
+      - port:
+          capability: attachment_oam_oam_oam_2_port
+          node: abstract_oam_2
+          relationship: org.openecomp.relationships.AttachesTo
+      - port:
+          capability: attachment_cif_cif_internal_0_port
+          node: abstract_cif
+          relationship: org.openecomp.relationships.AttachesTo
+      - port:
+          capability: attachment_cif_cif_oam_0_port_1
+          node: abstract_cif
+          relationship: org.openecomp.relationships.AttachesTo
+      - port:
+          capability: attachment_cif_cif_ims_core_0_port
+          node: abstract_cif
+          relationship: org.openecomp.relationships.AttachesTo
+      - port:
+          capability: attachment_cif_cif_oam_0_port_3
+          node: abstract_cif
+          relationship: org.openecomp.relationships.AttachesTo
+      - port:
+          capability: attachment_cif_cif_ims_li_0_port
+          node: abstract_cif
+          relationship: org.openecomp.relationships.AttachesTo
+      - port:
+          capability: attachment_cif_cif_internal_1_port
+          node: abstract_cif_1
+          relationship: org.openecomp.relationships.AttachesTo
+      - port:
+          capability: attachment_cif_cif_oam_1_port_1
+          node: abstract_cif_1
+          relationship: org.openecomp.relationships.AttachesTo
+      - port:
+          capability: attachment_cif_cif_ims_core_1_port
+          node: abstract_cif_1
+          relationship: org.openecomp.relationships.AttachesTo
+      - port:
+          capability: attachment_cif_cif_oam_1_port_3
+          node: abstract_cif_1
+          relationship: org.openecomp.relationships.AttachesTo
+      - port:
+          capability: attachment_cif_cif_ims_li_1_port
+          node: abstract_cif_1
+          relationship: org.openecomp.relationships.AttachesTo
+      - port:
+          capability: attachment_lbd_lbd_internal_0_port
+          node: abstract_lbd_1
+          relationship: org.openecomp.relationships.AttachesTo
+      - port:
+          capability: attachment_lbd_lbd_dpdk_0_port
+          node: abstract_lbd_1
+          relationship: org.openecomp.relationships.AttachesTo
+      - port:
+          capability: attachment_lbd_lbd_ims_core_0_port
+          node: abstract_lbd_1
+          relationship: org.openecomp.relationships.AttachesTo
+      - port:
+          capability: attachment_lbd_lbd_internal_1_port
+          node: abstract_lbd
+          relationship: org.openecomp.relationships.AttachesTo
+      - port:
+          capability: attachment_lbd_lbd_dpdk_1_port
+          node: abstract_lbd
+          relationship: org.openecomp.relationships.AttachesTo
+      - port:
+          capability: attachment_lbd_lbd_ims_core_1_port
+          node: abstract_lbd
+          relationship: org.openecomp.relationships.AttachesTo
+      - port:
+          capability: attachment_cdi_cdi_internal_0_port
+          node: abstract_cdi
+          relationship: org.openecomp.relationships.AttachesTo
+      - port:
+          capability: attachment_cdi_cdi_ims_core_0_port
+          node: abstract_cdi
+          relationship: org.openecomp.relationships.AttachesTo
+      - port:
+          capability: attachment_cdi_cdi_internal_1_port
+          node: abstract_cdi_1
+          relationship: org.openecomp.relationships.AttachesTo
+      - port:
+          capability: attachment_cdi_cdi_ims_core_1_port
+          node: abstract_cdi_1
+          relationship: org.openecomp.relationships.AttachesTo
+      - port:
+          capability: attachment_tdcore_internal_0_port_0
+          node: tdcore_zone_0_RRG
+          relationship: org.openecomp.relationships.AttachesTo
+      - port:
+          capability: attachment_tdcore_dpdk_0_port_1
+          node: tdcore_zone_0_RRG
+          relationship: org.openecomp.relationships.AttachesTo
+      - port:
+          capability: attachment_tdcore_internal_0_port_0
+          node: tdcore_zone_1_RRG
+          relationship: org.openecomp.relationships.AttachesTo
+      - port:
+          capability: attachment_tdcore_dpdk_0_port_1
+          node: tdcore_zone_1_RRG
+          relationship: org.openecomp.relationships.AttachesTo
+      - port:
+          capability: attachment_cscf_internal_0_port_0
+          node: cscf_zone_0_RRG
+          relationship: org.openecomp.relationships.AttachesTo
+      - port:
+          capability: attachment_cscf_internal_0_port_0
+          node: cscf_zone_1_RRG
+          relationship: org.openecomp.relationships.AttachesTo
+    cdi_internal_v6_vip_0_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        security_groups:
+        - cscf_RSG
+        fixed_ips:
+        - ip_address:
+            get_input: cdi_internal_v6_vip_0
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        name:
+          str_replace:
+            template: $NAME$DELcdi$DELinternal$DELvip$DELv6
+            params:
+              $NAME:
+                get_input: vnf_name
+              $DEL:
+                get_input: vcscf_name_delimeter
+        network: cscf_internal_network_0
+      requirements:
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: cscf_internal_network_0
+          relationship: tosca.relationships.network.LinksTo
+      - dependency:
+          capability: tosca.capabilities.Node
+          node: cscf_internal_network_0
+          relationship: tosca.relationships.DependsOn
+    cscf_internal_dpdk_network_0:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        dhcp_enabled: false
+        shared: false
+        admin_state_up: true
+        network_name:
+          str_replace:
+            template: $PREFIX$DELinternal$DELdpdk$DELnetwork
+            params:
+              $PREFIX:
+                get_input: vnf_name
+              $DEL:
+                get_input: vcscf_name_delimeter
+        subnets:
+          cscf_internal_dpdk_subnet_0:
+            enable_dhcp: false
+            name:
+              str_replace:
+                template: $PREFIX$DELinternal$DELdpdk$DELsubnet
+                params:
+                  $PREFIX:
+                    get_input: vnf_name
+                  $DEL:
+                    get_input: vcscf_name_delimeter
+            cidr:
+              get_input: vcscf_internal_dpdk_network_cidr
+    cif_ims_core_v6_vip_2_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        security_groups:
+        - cscf_RSG
+        fixed_ips:
+        - ip_address:
+            get_input: cif_ims_core_v6_vip_0
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        name:
+          str_replace:
+            template: $NAME$DELcif$DELims$DELcore$DELvip$DELv6
+            params:
+              $NAME:
+                get_input: vnf_name
+              $DEL:
+                get_input: vcscf_name_delimeter
+        network_role_tag: ims_core
+        network:
+          get_input: ims_core_net_id
+    abstract_cdi_1:
+      type: org.openecomp.resource.abstract.nodes.cdi_1
+      directives:
+      - substitutable
+      properties:
+        port_cdi_ims_core_1_port_security_groups:
+        - - cscf_RSG
+        vm_flavor_name:
+          get_input: cdi_flavor_name
+        port_cdi_internal_1_port_security_groups:
+        - - cscf_RSG
+        port_cdi_ims_core_1_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        vm_image_name:
+          get_input: cdi_image_name
+        compute_cdi_scheduler_hints:
+        - group: cdi_server_group_group
+        port_cdi_ims_core_1_port_fixed_ips:
+        - ip_address:
+            get_input: cdi_ims_core_v6_ip_1
+        compute_cdi_name:
+        - get_input: cdi_name_1
+        port_cdi_ims_core_1_port_network_role_tag: ims_core
+        port_cdi_ims_core_1_port_name:
+        - str_replace:
+            template: $PREFIX$DELeth1
+            params:
+              $PREFIX:
+                get_input: cdi_name_1
+              $DEL:
+                get_input: vcscf_name_delimeter
+        compute_cdi_user_data_format:
+        - RAW
+        port_cdi_ims_core_1_port_network:
+        - get_input: ims_core_net_id
+        compute_cdi_availability_zone:
+        - get_input: availability_zone_1
+        port_cdi_internal_1_port_network:
+        - cscf_internal_network_0
+        port_cdi_ims_core_1_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: true
+        port_cdi_internal_1_port_allowed_address_pairs:
+        - ip_address: 0.0.0.0/1
+        - ip_address: 128.0.0.0/1
+        - ip_address: ::/1
+        - ip_address: 8000::/1
+        compute_cdi_config_drive:
+        - true
+        port_cdi_internal_1_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        port_cdi_ims_core_1_port_allowed_address_pairs:
+        - ip_address:
+            get_input: cdi_ims_core_v6_vip_0
+        port_cdi_internal_1_port_fixed_ips:
+        - ip_address:
+            get_input: cdi_internal_ip_1
+        - ip_address:
+            get_input: cdi_internal_v6_ip_1
+        port_cdi_internal_1_port_name:
+        - str_replace:
+            template: $PREFIX$DELeth0
+            params:
+              $PREFIX:
+                get_input: cdi_name_1
+              $DEL:
+                get_input: vcscf_name_delimeter
+        port_cdi_internal_1_port_ip_requirements:
+        - ip_version: 6
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        compute_cdi_metadata:
+        - vf_module_id:
+            get_input: vf_module_id
+          vm_role: cdi
+          vnf_id:
+            get_input: vnf_id
+          vnf_name:
+            get_input: vnf_name
+          vf_module_name:
+            get_input: vf_module_name
+        service_template_filter:
+          substitute_service_template: Nested_cdi_1ServiceTemplate.yaml
+          count: 1
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+      requirements:
+      - link_cdi_cdi_internal_1_port:
+          capability: tosca.capabilities.network.Linkable
+          node: cscf_internal_network_0
+          relationship: tosca.relationships.network.LinksTo
+      - dependency_cdi_cdi_internal_1_port:
+          capability: tosca.capabilities.Node
+          node: cscf_internal_network_0
+          relationship: tosca.relationships.DependsOn
+    cif_internal_vip_0_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        security_groups:
+        - cscf_RSG
+        fixed_ips:
+        - ip_address:
+            get_input: cif_internal_vip_0
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        name:
+          str_replace:
+            template: $NAME$DELcif$DELinternal$DELvip
+            params:
+              $NAME:
+                get_input: vnf_name
+              $DEL:
+                get_input: vcscf_name_delimeter
+        network: cscf_internal_network_0
+      requirements:
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: cscf_internal_network_0
+          relationship: tosca.relationships.network.LinksTo
+      - dependency:
+          capability: tosca.capabilities.Node
+          node: cscf_internal_network_0
+          relationship: tosca.relationships.DependsOn
+    cscf_zone_1_RRG:
+      type: org.openecomp.resource.abstract.nodes.heat.cscf
+      directives:
+      - substitutable
+      properties:
+        vf_module_id:
+          get_input: vf_module_id
+        internal_net_id: cscf_internal_network_0
+        vcscf_release:
+          get_input: vcscf_release
+        cscf_internal_ips:
+          get_input: cscf_internal_zone_1_ips
+        vcscf_gateway:
+          get_input: oam_internal_vip_0
+        vnf_name:
+          get_input: vnf_name
+        vf_module_name:
+          get_input: vf_module_name
+        cscf_image_name:
+          get_input: cscf_image_name
+        cscf_names:
+          get_input: cscf_zone_1_names
+        service_template_filter:
+          substitute_service_template: nested_cscfServiceTemplate.yaml
+          count:
+            get_input: cscf_zone_1_count
+          mandatory: false
+        vcscf_swrepo_address:
+          get_input: vcscf_swrepo_address
+        cscf_uuids:
+          get_input: cscf_zone_1_uuids
+        vnf_id:
+          get_input: vnf_id
+        availability_zone_0:
+          get_input: availability_zone_1
+        cscf_internal_v6_ips:
+          get_input: cscf_internal_zone_1_v6_ips
+        cscf_flavor_name:
+          get_input: cscf_flavor_name
+        vcscf_cmrepo_address:
+          get_input: vcscf_cmrepo_address
+        vcscf_dns_address:
+          get_input: vcscf_dns_address
+        vcscf_internal_network_mtu:
+          get_input: vcscf_internal_network_mtu
+        port_cscf_internal_0_port_0_ip_requirements:
+        - ip_version: 6
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        index:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+        vcscf_internal_netmask:
+          get_input: vcscf_internal_netmask
+        vcscf_name_delimeter:
+          get_input: vcscf_name_delimeter
+        port_cscf_internal_0_port_0_network_role_tag: internal
+        vcscf_dn:
+          get_input: vcscf_dn
+        vcscf_du:
+          get_input: vcscf_du
+        port_cscf_internal_0_port_0_mac_requirements:
+          mac_count_required:
+            is_required: false
+        cscf_security_group: cscf_RSG
+      requirements:
+      - link_cscf_internal_0_port_0:
+          capability: tosca.capabilities.network.Linkable
+          node: cscf_internal_network_0
+          relationship: tosca.relationships.network.LinksTo
+      - dependency_cscf_server_0:
+          capability: tosca.capabilities.Node
+          node: cscf_internal_network_0
+          relationship: tosca.relationships.DependsOn
+    oam_oam_vip_1_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        security_groups:
+        - cscf_RSG
+        fixed_ips:
+        - ip_address:
+            get_input: oam_oam_vip_0
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        name:
+          str_replace:
+            template: $NAME$DELoam$DELoam$DELvip
+            params:
+              $NAME:
+                get_input: vnf_name
+              $DEL:
+                get_input: vcscf_name_delimeter
+        network_role_tag: oam
+        network:
+          get_input: oam_net_id
+    tdcore_zone_0_RRG:
+      type: org.openecomp.resource.abstract.nodes.heat.tdcore
+      directives:
+      - substitutable
+      properties:
+        vf_module_id:
+          get_input: vf_module_id
+        internal_net_id: cscf_internal_network_0
+        vcscf_release:
+          get_input: vcscf_release
+        tdcore_security_group: cscf_RSG
+        tdcore_names:
+          get_input: tdcore_zone_0_names
+        port_tdcore_dpdk_0_port_1_network_role_tag: internal_dpdk
+        port_tdcore_dpdk_0_port_1_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        vcscf_gateway:
+          get_input: oam_internal_vip_0
+        vnf_name:
+          get_input: vnf_name
+        internal_dpdk_net_id: cscf_internal_dpdk_network_0
+        vf_module_name:
+          get_input: vf_module_name
+        service_template_filter:
+          substitute_service_template: nested_tdcoreServiceTemplate.yaml
+          count:
+            get_input: tdcore_zone_0_count
+          mandatory: false
+        vcscf_swrepo_address:
+          get_input: vcscf_swrepo_address
+        vnf_id:
+          get_input: vnf_id
+        availability_zone_0:
+          get_input: availability_zone_0
+        port_tdcore_dpdk_0_port_1_mac_requirements:
+          mac_count_required:
+            is_required: false
+        tdcore_flavor_name:
+          get_input: tdcore_flavor_name
+        tdcore_image_name:
+          get_input: tdcore_image_name
+        vcscf_cmrepo_address:
+          get_input: vcscf_cmrepo_address
+        vcscf_dns_address:
+          get_input: vcscf_dns_address
+        vcscf_internal_network_mtu:
+          get_input: vcscf_internal_network_mtu
+        tdcore_server_group: tdcore_zone_0_server_group_group
+        index:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+        vcscf_internal_netmask:
+          get_input: vcscf_internal_netmask
+        port_tdcore_internal_0_port_0_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        vcscf_name_delimeter:
+          get_input: vcscf_name_delimeter
+        tdcore_internal_ips:
+          get_input: tdcore_internal_zone_0_ips
+        tdcore_dpdk_ips:
+          get_input: tdcore_dpdk_zone_0_ips
+        tdcore_uuids:
+          get_input: tdcore_zone_0_uuids
+        vcscf_dn:
+          get_input: vcscf_dn
+        port_tdcore_internal_0_port_0_network_role_tag: internal
+        port_tdcore_internal_0_port_0_mac_requirements:
+          mac_count_required:
+            is_required: false
+        vcscf_du:
+          get_input: vcscf_du
+      requirements:
+      - link_tdcore_internal_0_port_0:
+          capability: tosca.capabilities.network.Linkable
+          node: cscf_internal_network_0
+          relationship: tosca.relationships.network.LinksTo
+      - link_tdcore_dpdk_0_port_1:
+          capability: tosca.capabilities.network.Linkable
+          node: cscf_internal_dpdk_network_0
+          relationship: tosca.relationships.network.LinksTo
+      - dependency_tdcore_server_0:
+          capability: tosca.capabilities.Node
+          node: cscf_internal_network_0
+          relationship: tosca.relationships.DependsOn
+      - dependency_tdcore_server_0:
+          capability: tosca.capabilities.Node
+          node: cscf_internal_dpdk_network_0
+          relationship: tosca.relationships.DependsOn
+    lbd_ims_core_v6_vip_2_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        security_groups:
+        - cscf_RSG
+        fixed_ips:
+        - ip_address:
+            get_input: lbd_ims_core_v6_vip_0
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        name:
+          str_replace:
+            template: $NAME$DELlbd$DELims$DELcore$DELvip$DELv6
+            params:
+              $NAME:
+                get_input: vnf_name
+              $DEL:
+                get_input: vcscf_name_delimeter
+        network_role_tag: ims_core
+        network:
+          get_input: ims_core_net_id
+    cif_oam_vip_1_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        security_groups:
+        - cscf_RSG
+        fixed_ips:
+        - ip_address:
+            get_input: cif_oam_vip_0
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        name:
+          str_replace:
+            template: $NAME$DELcif$DELoam$DELvip0
+            params:
+              $NAME:
+                get_input: vnf_name
+              $DEL:
+                get_input: vcscf_name_delimeter
+        network_role_tag: oam
+        network:
+          get_input: oam_net_id
+    oam_volume_0:
+      type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+      properties:
+        availability_zone:
+          get_input: availability_zone_0
+        size: '(get_input : oam_volume_size_0) * 1024'
+        name:
+          str_replace:
+            template: $VNF$DELoam$DELvolume$DEL0
+            params:
+              $DEL:
+                get_input: vcscf_name_delimeter
+              $VNF:
+                get_input: vnf_name
+    abstract_lbd:
+      type: org.openecomp.resource.abstract.nodes.lbd
+      directives:
+      - substitutable
+      properties:
+        port_lbd_ims_core_1_port_allowed_address_pairs:
+        - ip_address:
+            get_input: lbd_ims_core_v6_vip_0
+        compute_lbd_user_data_format:
+        - RAW
+        compute_lbd_config_drive:
+        - true
+        port_lbd_internal_1_port_name:
+        - str_replace:
+            template: $PREFIX$DELeth0
+            params:
+              $PREFIX:
+                get_input: lbd_name_1
+              $DEL:
+                get_input: vcscf_name_delimeter
+        port_lbd_dpdk_1_port_allowed_address_pairs:
+        - ip_address: 0.0.0.0/1
+        - ip_address: 128.0.0.0/1
+        - ip_address: ::/1
+        - ip_address: 8000::/1
+        port_lbd_ims_core_1_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: true
+        port_lbd_dpdk_1_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        vm_flavor_name:
+          get_input: lbd_flavor_name
+        port_lbd_ims_core_1_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        compute_lbd_availability_zone:
+        - get_input: availability_zone_1
+        port_lbd_internal_1_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        port_lbd_internal_1_port_security_groups:
+        - - cscf_RSG
+        vm_image_name:
+          get_input: lbd_image_name
+        port_lbd_dpdk_1_port_network:
+        - cscf_internal_dpdk_network_0
+        port_lbd_ims_core_1_port_name:
+        - str_replace:
+            template: $PREFIX$DELeth2
+            params:
+              $PREFIX:
+                get_input: lbd_name_1
+              $DEL:
+                get_input: vcscf_name_delimeter
+        port_lbd_ims_core_1_port_security_groups:
+        - - cscf_RSG
+        port_lbd_ims_core_1_port_fixed_ips:
+        - ip_address:
+            get_input: lbd_ims_core_v6_ip_1
+        port_lbd_internal_1_port_fixed_ips:
+        - ip_address:
+            get_input: lbd_internal_ip_1
+        port_lbd_ims_core_1_port_network:
+        - get_input: ims_core_net_id
+        compute_lbd_scheduler_hints:
+        - group: lbd_server_group_group
+        port_lbd_dpdk_1_port_name:
+        - str_replace:
+            template: $PREFIX$DELeth1
+            params:
+              $PREFIX:
+                get_input: lbd_name_1
+              $DEL:
+                get_input: vcscf_name_delimeter
+        port_lbd_dpdk_1_port_security_groups:
+        - - cscf_RSG
+        port_lbd_dpdk_1_port_fixed_ips:
+        - ip_address:
+            get_input: lbd_internal_dpdk_ip_1
+        port_lbd_internal_1_port_network:
+        - cscf_internal_network_0
+        port_lbd_dpdk_1_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        compute_lbd_metadata:
+        - vf_module_id:
+            get_input: vf_module_id
+          vm_role: lbd
+          vnf_id:
+            get_input: vnf_id
+          vnf_name:
+            get_input: vnf_name
+          vf_module_name:
+            get_input: vf_module_name
+        port_lbd_internal_1_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        compute_lbd_name:
+        - get_input: lbd_name_1
+        port_lbd_ims_core_1_port_network_role_tag: ims_core
+        service_template_filter:
+          substitute_service_template: Nested_lbdServiceTemplate.yaml
+          count: 1
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+      requirements:
+      - link_lbd_lbd_internal_1_port:
+          capability: tosca.capabilities.network.Linkable
+          node: cscf_internal_network_0
+          relationship: tosca.relationships.network.LinksTo
+      - dependency_lbd_lbd_internal_1_port:
+          capability: tosca.capabilities.Node
+          node: cscf_internal_network_0
+          relationship: tosca.relationships.DependsOn
+      - link_lbd_lbd_dpdk_1_port:
+          capability: tosca.capabilities.network.Linkable
+          node: cscf_internal_dpdk_network_0
+          relationship: tosca.relationships.network.LinksTo
+      - dependency_lbd_lbd_dpdk_1_port:
+          capability: tosca.capabilities.Node
+          node: cscf_internal_dpdk_network_0
+          relationship: tosca.relationships.DependsOn
+    oam_internal_vip_0_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        security_groups:
+        - cscf_RSG
+        fixed_ips:
+        - ip_address:
+            get_input: oam_internal_vip_0
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        name:
+          str_replace:
+            template: $NAME$DELoam$DELinternal$DELvip
+            params:
+              $NAME:
+                get_input: vnf_name
+              $DEL:
+                get_input: vcscf_name_delimeter
+        network: cscf_internal_network_0
+      requirements:
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: cscf_internal_network_0
+          relationship: tosca.relationships.network.LinksTo
+      - dependency:
+          capability: tosca.capabilities.Node
+          node: cscf_internal_network_0
+          relationship: tosca.relationships.DependsOn
+    tdcore_zone_1_RRG:
+      type: org.openecomp.resource.abstract.nodes.heat.tdcore
+      directives:
+      - substitutable
+      properties:
+        vf_module_id:
+          get_input: vf_module_id
+        internal_net_id: cscf_internal_network_0
+        vcscf_release:
+          get_input: vcscf_release
+        tdcore_security_group: cscf_RSG
+        tdcore_names:
+          get_input: tdcore_zone_1_names
+        port_tdcore_dpdk_0_port_1_network_role_tag: internal_dpdk
+        port_tdcore_dpdk_0_port_1_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        vcscf_gateway:
+          get_input: oam_internal_vip_0
+        vnf_name:
+          get_input: vnf_name
+        internal_dpdk_net_id: cscf_internal_dpdk_network_0
+        vf_module_name:
+          get_input: vf_module_name
+        service_template_filter:
+          substitute_service_template: nested_tdcoreServiceTemplate.yaml
+          count:
+            get_input: tdcore_zone_1_count
+          mandatory: false
+        vcscf_swrepo_address:
+          get_input: vcscf_swrepo_address
+        vnf_id:
+          get_input: vnf_id
+        availability_zone_0:
+          get_input: availability_zone_1
+        port_tdcore_dpdk_0_port_1_mac_requirements:
+          mac_count_required:
+            is_required: false
+        tdcore_flavor_name:
+          get_input: tdcore_flavor_name
+        tdcore_image_name:
+          get_input: tdcore_image_name
+        vcscf_cmrepo_address:
+          get_input: vcscf_cmrepo_address
+        vcscf_dns_address:
+          get_input: vcscf_dns_address
+        vcscf_internal_network_mtu:
+          get_input: vcscf_internal_network_mtu
+        tdcore_server_group: tdcore_zone_1_server_group_group
+        index:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+        vcscf_internal_netmask:
+          get_input: vcscf_internal_netmask
+        port_tdcore_internal_0_port_0_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        vcscf_name_delimeter:
+          get_input: vcscf_name_delimeter
+        tdcore_internal_ips:
+          get_input: tdcore_internal_zone_1_ips
+        tdcore_dpdk_ips:
+          get_input: tdcore_dpdk_zone_1_ips
+        tdcore_uuids:
+          get_input: tdcore_zone_1_uuids
+        vcscf_dn:
+          get_input: vcscf_dn
+        port_tdcore_internal_0_port_0_network_role_tag: internal
+        port_tdcore_internal_0_port_0_mac_requirements:
+          mac_count_required:
+            is_required: false
+        vcscf_du:
+          get_input: vcscf_du
+      requirements:
+      - link_tdcore_internal_0_port_0:
+          capability: tosca.capabilities.network.Linkable
+          node: cscf_internal_network_0
+          relationship: tosca.relationships.network.LinksTo
+      - link_tdcore_dpdk_0_port_1:
+          capability: tosca.capabilities.network.Linkable
+          node: cscf_internal_dpdk_network_0
+          relationship: tosca.relationships.network.LinksTo
+      - dependency_tdcore_server_0:
+          capability: tosca.capabilities.Node
+          node: cscf_internal_network_0
+          relationship: tosca.relationships.DependsOn
+      - dependency_tdcore_server_0:
+          capability: tosca.capabilities.Node
+          node: cscf_internal_dpdk_network_0
+          relationship: tosca.relationships.DependsOn
+    oam_volume_1:
+      type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+      properties:
+        availability_zone:
+          get_input: availability_zone_1
+        size: '(get_input : oam_volume_size_0) * 1024'
+        name:
+          str_replace:
+            template: $VNF$DELoam$DELvolume$DEL1
+            params:
+              $DEL:
+                get_input: vcscf_name_delimeter
+              $VNF:
+                get_input: vnf_name
+    abstract_cdi:
+      type: org.openecomp.resource.abstract.nodes.cdi
+      directives:
+      - substitutable
+      properties:
+        port_cdi_internal_0_port_ip_requirements:
+        - ip_version: 6
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        vm_flavor_name:
+          get_input: cdi_flavor_name
+        port_cdi_ims_core_0_port_name:
+        - str_replace:
+            template: $PREFIX$DELeth1
+            params:
+              $PREFIX:
+                get_input: cdi_name_0
+              $DEL:
+                get_input: vcscf_name_delimeter
+        port_cdi_internal_0_port_allowed_address_pairs:
+        - ip_address: 0.0.0.0/1
+        - ip_address: 128.0.0.0/1
+        - ip_address: ::/1
+        - ip_address: 8000::/1
+        vm_image_name:
+          get_input: cdi_image_name
+        compute_cdi_scheduler_hints:
+        - group: cdi_server_group_group
+        compute_cdi_name:
+        - get_input: cdi_name_0
+        port_cdi_ims_core_0_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: true
+        port_cdi_ims_core_0_port_network_role_tag: ims_core
+        compute_cdi_user_data_format:
+        - RAW
+        port_cdi_internal_0_port_name:
+        - str_replace:
+            template: $PREFIX$DELeth0
+            params:
+              $PREFIX:
+                get_input: cdi_name_0
+              $DEL:
+                get_input: vcscf_name_delimeter
+        compute_cdi_availability_zone:
+        - get_input: availability_zone_0
+        port_cdi_ims_core_0_port_network:
+        - get_input: ims_core_net_id
+        port_cdi_internal_0_port_network:
+        - cscf_internal_network_0
+        port_cdi_internal_0_port_fixed_ips:
+        - ip_address:
+            get_input: cdi_internal_ip_0
+        - ip_address:
+            get_input: cdi_internal_v6_ip_0
+        compute_cdi_config_drive:
+        - true
+        port_cdi_internal_0_port_security_groups:
+        - - cscf_RSG
+        port_cdi_ims_core_0_port_security_groups:
+        - - cscf_RSG
+        port_cdi_ims_core_0_port_fixed_ips:
+        - ip_address:
+            get_input: cdi_ims_core_v6_ip_0
+        port_cdi_internal_0_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        port_cdi_ims_core_0_port_allowed_address_pairs:
+        - ip_address:
+            get_input: cdi_ims_core_v6_vip_0
+        compute_cdi_metadata:
+        - vf_module_id:
+            get_input: vf_module_id
+          vm_role: cdi
+          vnf_id:
+            get_input: vnf_id
+          vnf_name:
+            get_input: vnf_name
+          vf_module_name:
+            get_input: vf_module_name
+        port_cdi_ims_core_0_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        service_template_filter:
+          substitute_service_template: Nested_cdiServiceTemplate.yaml
+          count: 1
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+      requirements:
+      - link_cdi_cdi_internal_0_port:
+          capability: tosca.capabilities.network.Linkable
+          node: cscf_internal_network_0
+          relationship: tosca.relationships.network.LinksTo
+      - dependency_cdi_cdi_internal_0_port:
+          capability: tosca.capabilities.Node
+          node: cscf_internal_network_0
+          relationship: tosca.relationships.DependsOn
+    cif_volume_0:
+      type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+      properties:
+        availability_zone:
+          get_input: availability_zone_0
+        size: '(get_input : cif_volume_size_0) * 1024'
+        name:
+          str_replace:
+            template: $VNF$DELcif$DELvolume$DEL0
+            params:
+              $DEL:
+                get_input: vcscf_name_delimeter
+              $VNF:
+                get_input: vnf_name
+    cif_volume_1:
+      type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
+      properties:
+        availability_zone:
+          get_input: availability_zone_1
+        size: '(get_input : cif_volume_size_0) * 1024'
+        name:
+          str_replace:
+            template: $VNF$DELcif$DELvolume$DEL1
+            params:
+              $DEL:
+                get_input: vcscf_name_delimeter
+              $VNF:
+                get_input: vnf_name
+    abstract_oam_1:
+      type: org.openecomp.resource.abstract.nodes.oam_1
+      directives:
+      - substitutable
+      properties:
+        port_oam_internal_1_port_security_groups:
+        - - cscf_RSG
+        port_oam_oam_1_port_allowed_address_pairs:
+        - ip_address:
+            get_input: oam_oam_vip_0
+        vm_flavor_name:
+          get_input: oam_flavor_name
+        port_oam_oam_1_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: true
+        port_oam_oam_1_port_network_role_tag: oam
+        port_oam_oam_1_port_security_groups:
+        - - cscf_RSG
+        vm_image_name:
+          get_input: oam_image_name
+        compute_oam_config_drive:
+        - true
+        port_oam_internal_1_port_network:
+        - cscf_internal_network_0
+        port_oam_oam_1_port_fixed_ips:
+        - ip_address:
+            get_input: oam_oam_ip_1
+        port_oam_internal_1_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        port_oam_oam_1_port_network:
+        - get_input: oam_net_id
+        port_oam_internal_1_port_allowed_address_pairs:
+        - ip_address: 0.0.0.0/1
+        - ip_address: 128.0.0.0/1
+        - ip_address: ::/1
+        - ip_address: 8000::/1
+        compute_oam_user_data_format:
+        - RAW
+        port_oam_internal_1_port_name:
+        - str_replace:
+            template: $PREFIX$DELeth0
+            params:
+              $PREFIX:
+                get_input: oam_name_1
+              $DEL:
+                get_input: vcscf_name_delimeter
+        port_oam_internal_1_port_fixed_ips:
+        - ip_address:
+            get_input: oam_internal_ip_1
+        port_oam_oam_1_port_name:
+        - str_replace:
+            template: $PREFIX$DELeth1
+            params:
+              $PREFIX:
+                get_input: oam_name_1
+              $DEL:
+                get_input: vcscf_name_delimeter
+        compute_oam_scheduler_hints:
+        - group: oam_server_group_group
+        compute_oam_availability_zone:
+        - get_input: availability_zone_1
+        compute_oam_metadata:
+        - vf_module_id:
+            get_input: vf_module_id
+          vm_role: oam
+          vnf_id:
+            get_input: vnf_id
+          vnf_name:
+            get_input: vnf_name
+          vf_module_name:
+            get_input: vf_module_name
+        port_oam_internal_1_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        compute_oam_name:
+        - get_input: oam_name_1
+        port_oam_oam_1_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        service_template_filter:
+          substitute_service_template: Nested_oam_1ServiceTemplate.yaml
+          count: 1
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+      requirements:
+      - link_oam_oam_internal_1_port:
+          capability: tosca.capabilities.network.Linkable
+          node: cscf_internal_network_0
+          relationship: tosca.relationships.network.LinksTo
+      - dependency_oam_oam_internal_1_port:
+          capability: tosca.capabilities.Node
+          node: cscf_internal_network_0
+          relationship: tosca.relationships.DependsOn
+    abstract_oam_2:
+      type: org.openecomp.resource.abstract.nodes.oam_2
+      directives:
+      - substitutable
+      properties:
+        port_oam_oam_2_port_network_role_tag: oam
+        port_oam_oam_2_port_security_groups:
+        - - cscf_RSG
+        port_oam_oam_2_port_name:
+        - str_replace:
+            template: $PREFIX$DELeth1
+            params:
+              $PREFIX:
+                get_input: oam_name_2
+              $DEL:
+                get_input: vcscf_name_delimeter
+        port_oam_internal_2_port_name:
+        - str_replace:
+            template: $PREFIX$DELeth0
+            params:
+              $PREFIX:
+                get_input: oam_name_2
+              $DEL:
+                get_input: vcscf_name_delimeter
+        vm_flavor_name:
+          get_input: oam_flavor_name
+        port_oam_internal_2_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        vm_image_name:
+          get_input: oam_image_name
+        compute_oam_config_drive:
+        - true
+        port_oam_internal_2_port_allowed_address_pairs:
+        - ip_address: 0.0.0.0/1
+        - ip_address: 128.0.0.0/1
+        - ip_address: ::/1
+        - ip_address: 8000::/1
+        port_oam_internal_2_port_network:
+        - cscf_internal_network_0
+        port_oam_internal_2_port_fixed_ips:
+        - ip_address:
+            get_input: oam_internal_ip_2
+        port_oam_oam_2_port_fixed_ips:
+        - ip_address:
+            get_input: oam_oam_ip_2
+        port_oam_oam_2_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        port_oam_oam_2_port_network:
+        - get_input: oam_net_id
+        compute_oam_user_data_format:
+        - RAW
+        port_oam_internal_2_port_security_groups:
+        - - cscf_RSG
+        port_oam_oam_2_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: true
+        compute_oam_scheduler_hints:
+        - group: oam_server_group_group
+        port_oam_internal_2_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        compute_oam_availability_zone:
+        - get_input: availability_zone_0
+        compute_oam_metadata:
+        - vf_module_id:
+            get_input: vf_module_id
+          vm_role: oam
+          vnf_id:
+            get_input: vnf_id
+          vnf_name:
+            get_input: vnf_name
+          vf_module_name:
+            get_input: vf_module_name
+        port_oam_oam_2_port_allowed_address_pairs:
+        - ip_address:
+            get_input: oam_oam_vip_0
+        compute_oam_name:
+        - get_input: oam_name_2
+        service_template_filter:
+          substitute_service_template: Nested_oam_2ServiceTemplate.yaml
+          count: 1
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+      requirements:
+      - link_oam_oam_internal_2_port:
+          capability: tosca.capabilities.network.Linkable
+          node: cscf_internal_network_0
+          relationship: tosca.relationships.network.LinksTo
+      - dependency_oam_oam_internal_2_port:
+          capability: tosca.capabilities.Node
+          node: cscf_internal_network_0
+          relationship: tosca.relationships.DependsOn
+    cif_ims_li_v6_vip_4_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        security_groups:
+        - cscf_RSG
+        fixed_ips:
+        - ip_address:
+            get_input: cif_ims_li_v6_vip_0
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        name:
+          str_replace:
+            template: $NAME$DELcif$DELims$DELli$DELvip$DELv6
+            params:
+              $NAME:
+                get_input: vnf_name
+              $DEL:
+                get_input: vcscf_name_delimeter
+        network_role_tag: ims_li_v6
+        network:
+          get_input: ims_li_v6_net_id
+    cscf_internal_network_0:
+      type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
+      properties:
+        dhcp_enabled: false
+        shared: false
+        ip_version: 4
+        admin_state_up: true
+        network_name:
+          str_replace:
+            template: $PREFIX$DELinternal$DELnetwork
+            params:
+              $PREFIX:
+                get_input: vnf_name
+              $DEL:
+                get_input: vcscf_name_delimeter
+        subnets:
+          cscf_internal_subnet_0:
+            enable_dhcp: false
+            ip_version: 4
+            name:
+              str_replace:
+                template: $PREFIX$DELinternal$DELsubnet
+                params:
+                  $PREFIX:
+                    get_input: vnf_name
+                  $DEL:
+                    get_input: vcscf_name_delimeter
+            cidr:
+              get_input: vcscf_internal_network_cidr
+          cscf_internal_subnet_v6_0:
+            enable_dhcp: false
+            ip_version: 6
+            name:
+              str_replace:
+                template: $PREFIX$DELinternal$DELsubnetv6
+                params:
+                  $PREFIX:
+                    get_input: vnf_name
+                  $DEL:
+                    get_input: vcscf_name_delimeter
+            cidr:
+              get_input: vcscf_internal_network_v6_cidr
+    abstract_oam:
+      type: org.openecomp.resource.abstract.nodes.oam
+      directives:
+      - substitutable
+      properties:
+        port_oam_oam_0_port_name:
+        - str_replace:
+            template: $PREFIX$DELeth1
+            params:
+              $PREFIX:
+                get_input: oam_name_0
+              $DEL:
+                get_input: vcscf_name_delimeter
+        port_oam_oam_0_port_fixed_ips:
+        - ip_address:
+            get_input: oam_oam_ip_0
+        vm_flavor_name:
+          get_input: oam_flavor_name
+        port_oam_oam_0_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        port_oam_internal_0_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        port_oam_internal_0_port_network:
+        - cscf_internal_network_0
+        vm_image_name:
+          get_input: oam_image_name
+        compute_oam_config_drive:
+        - true
+        port_oam_internal_0_port_name:
+        - str_replace:
+            template: $PREFIX$DELeth0
+            params:
+              $PREFIX:
+                get_input: oam_name_0
+              $DEL:
+                get_input: vcscf_name_delimeter
+        port_oam_oam_0_port_allowed_address_pairs:
+        - ip_address:
+            get_input: oam_oam_vip_0
+        port_oam_internal_0_port_security_groups:
+        - - cscf_RSG
+        port_oam_internal_0_port_fixed_ips:
+        - ip_address:
+            get_input: oam_internal_ip_0
+        port_oam_oam_0_port_network_role_tag: oam
+        compute_oam_user_data_format:
+        - RAW
+        port_oam_oam_0_port_network:
+        - get_input: oam_net_id
+        port_oam_oam_0_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: true
+        port_oam_internal_0_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        compute_oam_scheduler_hints:
+        - group: oam_server_group_group
+        port_oam_internal_0_port_allowed_address_pairs:
+        - ip_address: 0.0.0.0/1
+        - ip_address: 128.0.0.0/1
+        - ip_address: ::/1
+        - ip_address: 8000::/1
+        compute_oam_availability_zone:
+        - get_input: availability_zone_0
+        compute_oam_metadata:
+        - vf_module_id:
+            get_input: vf_module_id
+          vm_role: oam
+          vnf_id:
+            get_input: vnf_id
+          vnf_name:
+            get_input: vnf_name
+          vf_module_name:
+            get_input: vf_module_name
+        compute_oam_name:
+        - get_input: oam_name_0
+        port_oam_oam_0_port_security_groups:
+        - - cscf_RSG
+        service_template_filter:
+          substitute_service_template: Nested_oamServiceTemplate.yaml
+          count: 1
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+      requirements:
+      - link_oam_oam_internal_0_port:
+          capability: tosca.capabilities.network.Linkable
+          node: cscf_internal_network_0
+          relationship: tosca.relationships.network.LinksTo
+      - dependency_oam_oam_internal_0_port:
+          capability: tosca.capabilities.Node
+          node: cscf_internal_network_0
+          relationship: tosca.relationships.DependsOn
+    abstract_lbd_1:
+      type: org.openecomp.resource.abstract.nodes.lbd_1
+      directives:
+      - substitutable
+      properties:
+        compute_lbd_user_data_format:
+        - RAW
+        compute_lbd_config_drive:
+        - true
+        port_lbd_dpdk_0_port_fixed_ips:
+        - ip_address:
+            get_input: lbd_internal_dpdk_ip_0
+        port_lbd_internal_0_port_security_groups:
+        - - cscf_RSG
+        vm_flavor_name:
+          get_input: lbd_flavor_name
+        port_lbd_dpdk_0_port_security_groups:
+        - - cscf_RSG
+        compute_lbd_availability_zone:
+        - get_input: availability_zone_0
+        port_lbd_dpdk_0_port_allowed_address_pairs:
+        - ip_address: 0.0.0.0/1
+        - ip_address: 128.0.0.0/1
+        - ip_address: ::/1
+        - ip_address: 8000::/1
+        vm_image_name:
+          get_input: lbd_image_name
+        port_lbd_dpdk_0_port_name:
+        - str_replace:
+            template: $PREFIX$DELeth1
+            params:
+              $PREFIX:
+                get_input: lbd_name_0
+              $DEL:
+                get_input: vcscf_name_delimeter
+        port_lbd_dpdk_0_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        port_lbd_ims_core_0_port_network:
+        - get_input: ims_core_net_id
+        port_lbd_dpdk_0_port_network:
+        - cscf_internal_dpdk_network_0
+        port_lbd_ims_core_0_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        port_lbd_ims_core_0_port_allowed_address_pairs:
+        - ip_address:
+            get_input: lbd_ims_core_v6_vip_0
+        port_lbd_internal_0_port_name:
+        - str_replace:
+            template: $PREFIX$DELeth0
+            params:
+              $PREFIX:
+                get_input: lbd_name_0
+              $DEL:
+                get_input: vcscf_name_delimeter
+        port_lbd_ims_core_0_port_network_role_tag: ims_core
+        compute_lbd_scheduler_hints:
+        - group: lbd_server_group_group
+        port_lbd_internal_0_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        port_lbd_ims_core_0_port_fixed_ips:
+        - ip_address:
+            get_input: lbd_ims_core_v6_ip_0
+        port_lbd_ims_core_0_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: true
+        port_lbd_internal_0_port_fixed_ips:
+        - ip_address:
+            get_input: lbd_internal_ip_0
+        port_lbd_internal_0_port_network:
+        - cscf_internal_network_0
+        port_lbd_dpdk_0_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        compute_lbd_metadata:
+        - vf_module_id:
+            get_input: vf_module_id
+          vm_role: lbd
+          vnf_id:
+            get_input: vnf_id
+          vnf_name:
+            get_input: vnf_name
+          vf_module_name:
+            get_input: vf_module_name
+        compute_lbd_name:
+        - get_input: lbd_name_0
+        port_lbd_internal_0_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        port_lbd_ims_core_0_port_security_groups:
+        - - cscf_RSG
+        port_lbd_ims_core_0_port_name:
+        - str_replace:
+            template: $PREFIX$DELeth2
+            params:
+              $PREFIX:
+                get_input: lbd_name_0
+              $DEL:
+                get_input: vcscf_name_delimeter
+        service_template_filter:
+          substitute_service_template: Nested_lbd_1ServiceTemplate.yaml
+          count: 1
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+      requirements:
+      - link_lbd_lbd_internal_0_port:
+          capability: tosca.capabilities.network.Linkable
+          node: cscf_internal_network_0
+          relationship: tosca.relationships.network.LinksTo
+      - dependency_lbd_lbd_internal_0_port:
+          capability: tosca.capabilities.Node
+          node: cscf_internal_network_0
+          relationship: tosca.relationships.DependsOn
+      - link_lbd_lbd_dpdk_0_port:
+          capability: tosca.capabilities.network.Linkable
+          node: cscf_internal_dpdk_network_0
+          relationship: tosca.relationships.network.LinksTo
+      - dependency_lbd_lbd_dpdk_0_port:
+          capability: tosca.capabilities.Node
+          node: cscf_internal_dpdk_network_0
+          relationship: tosca.relationships.DependsOn
+    cscf_zone_0_RRG:
+      type: org.openecomp.resource.abstract.nodes.heat.cscf
+      directives:
+      - substitutable
+      properties:
+        vf_module_id:
+          get_input: vf_module_id
+        internal_net_id: cscf_internal_network_0
+        vcscf_release:
+          get_input: vcscf_release
+        cscf_internal_ips:
+          get_input: cscf_internal_zone_0_ips
+        vcscf_gateway:
+          get_input: oam_internal_vip_0
+        vnf_name:
+          get_input: vnf_name
+        vf_module_name:
+          get_input: vf_module_name
+        cscf_image_name:
+          get_input: cscf_image_name
+        cscf_names:
+          get_input: cscf_zone_0_names
+        service_template_filter:
+          substitute_service_template: nested_cscfServiceTemplate.yaml
+          count:
+            get_input: cscf_zone_0_count
+          mandatory: false
+        vcscf_swrepo_address:
+          get_input: vcscf_swrepo_address
+        cscf_uuids:
+          get_input: cscf_zone_0_uuids
+        vnf_id:
+          get_input: vnf_id
+        availability_zone_0:
+          get_input: availability_zone_0
+        cscf_internal_v6_ips:
+          get_input: cscf_internal_zone_0_v6_ips
+        cscf_flavor_name:
+          get_input: cscf_flavor_name
+        vcscf_cmrepo_address:
+          get_input: vcscf_cmrepo_address
+        vcscf_dns_address:
+          get_input: vcscf_dns_address
+        vcscf_internal_network_mtu:
+          get_input: vcscf_internal_network_mtu
+        port_cscf_internal_0_port_0_ip_requirements:
+        - ip_version: 6
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        index:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+        vcscf_internal_netmask:
+          get_input: vcscf_internal_netmask
+        vcscf_name_delimeter:
+          get_input: vcscf_name_delimeter
+        port_cscf_internal_0_port_0_network_role_tag: internal
+        vcscf_dn:
+          get_input: vcscf_dn
+        vcscf_du:
+          get_input: vcscf_du
+        port_cscf_internal_0_port_0_mac_requirements:
+          mac_count_required:
+            is_required: false
+        cscf_security_group: cscf_RSG
+      requirements:
+      - link_cscf_internal_0_port_0:
+          capability: tosca.capabilities.network.Linkable
+          node: cscf_internal_network_0
+          relationship: tosca.relationships.network.LinksTo
+      - dependency_cscf_server_0:
+          capability: tosca.capabilities.Node
+          node: cscf_internal_network_0
+          relationship: tosca.relationships.DependsOn
+    lbd_internal_dpdk_vip_1_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        security_groups:
+        - cscf_RSG
+        fixed_ips:
+        - ip_address:
+            get_input: lbd_internal_dpdk_vip_0
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        name:
+          str_replace:
+            template: $NAME$DELlbd$DELinternal$DELdpdk$DELvip
+            params:
+              $NAME:
+                get_input: vnf_name
+              $DEL:
+                get_input: vcscf_name_delimeter
+        network: cscf_internal_dpdk_network_0
+      requirements:
+      - link:
+          capability: tosca.capabilities.network.Linkable
+          node: cscf_internal_dpdk_network_0
+          relationship: tosca.relationships.network.LinksTo
+      - dependency:
+          capability: tosca.capabilities.Node
+          node: cscf_internal_dpdk_network_0
+          relationship: tosca.relationships.DependsOn
+    cif_oam_vip_3_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        security_groups:
+        - cscf_RSG
+        fixed_ips:
+        - ip_address:
+            get_input: cif_oam_vip_1
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        name:
+          str_replace:
+            template: $NAME$DELcif$DELoam$DELvip1
+            params:
+              $NAME:
+                get_input: vnf_name
+              $DEL:
+                get_input: vcscf_name_delimeter
+        network_role_tag: oam
+        network:
+          get_input: oam_net_id
+    cdi_ims_core_v6_vip_1_port:
+      type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
+      properties:
+        ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
+        security_groups:
+        - cscf_RSG
+        fixed_ips:
+        - ip_address:
+            get_input: cdi_ims_core_v6_vip_0
+        mac_requirements:
+          mac_count_required:
+            is_required: false
+        name:
+          str_replace:
+            template: $NAME$DELcdi$DELims$DELdb$DELvip$DELv6
+            params:
+              $NAME:
+                get_input: vnf_name
+              $DEL:
+                get_input: vcscf_name_delimeter
+        network_role_tag: ims_core
+        network:
+          get_input: ims_core_net_id
+    abstract_cif:
+      type: org.openecomp.resource.abstract.nodes.cif
+      directives:
+      - substitutable
+      properties:
+        port_cif_ims_core_0_port_network:
+        - get_input: ims_core_net_id
+        port_cif_oam_0_port_1_name:
+        - str_replace:
+            template: $PREFIX$DELeth1
+            params:
+              $PREFIX:
+                get_input: cif_name_0
+              $DEL:
+                get_input: vcscf_name_delimeter
+        port_cif_oam_0_port_1_allowed_address_pairs:
+        - ip_address:
+            get_input: cif_oam_vip_0
+        port_cif_oam_0_port_1_fixed_ips:
+        - ip_address:
+            get_input: cif_oam_ip_0
+        vm_flavor_name:
+          get_input: cif_flavor_name
+        port_cif_internal_0_port_name:
+        - str_replace:
+            template: $PREFIX$DELeth0
+            params:
+              $PREFIX:
+                get_input: cif_name_0
+              $DEL:
+                get_input: vcscf_name_delimeter
+        vm_image_name:
+          get_input: cif_image_name
+        compute_cif_user_data_format:
+        - RAW
+        port_cif_oam_0_port_1_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: true
+        port_cif_ims_li_0_port_fixed_ips:
+        - ip_address:
+            get_input: cif_ims_li_v6_ip_0
+        compute_cif_scheduler_hints:
+        - group: cif_server_group_group
+        port_cif_oam_0_port_1_security_groups:
+        - - cscf_RSG
+        port_cif_ims_li_0_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: true
+        compute_cif_metadata:
+        - vf_module_id:
+            get_input: vf_module_id
+          vm_role: cif
+          vnf_id:
+            get_input: vnf_id
+          vnf_name:
+            get_input: vnf_name
+          vf_module_name:
+            get_input: vf_module_name
+        port_cif_ims_li_0_port_name:
+        - str_replace:
+            template: $PREFIX$DELeth4
+            params:
+              $PREFIX:
+                get_input: cif_name_0
+              $DEL:
+                get_input: vcscf_name_delimeter
+        port_cif_ims_core_0_port_fixed_ips:
+        - ip_address:
+            get_input: cif_ims_core_v6_ip_0
+        port_cif_oam_0_port_3_network_role_tag: oam
+        port_cif_ims_core_0_port_security_groups:
+        - - cscf_RSG
+        port_cif_ims_core_0_port_name:
+        - str_replace:
+            template: $PREFIX$DELeth2
+            params:
+              $PREFIX:
+                get_input: cif_name_0
+              $DEL:
+                get_input: vcscf_name_delimeter
+        port_cif_internal_0_port_network:
+        - cscf_internal_network_0
+        port_cif_oam_0_port_3_security_groups:
+        - - cscf_RSG
+        port_cif_ims_core_0_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: true
+        port_cif_ims_li_0_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        port_cif_oam_0_port_1_network:
+        - get_input: oam_net_id
+        port_cif_ims_li_0_port_security_groups:
+        - - cscf_RSG
+        compute_cif_name:
+        - get_input: cif_name_0
+        compute_cif_availability_zone:
+        - get_input: availability_zone_0
+        port_cif_oam_0_port_1_network_role_tag: oam
+        port_cif_oam_0_port_3_mac_requirements:
+          mac_count_required:
+            is_required: false
+        port_cif_ims_core_0_port_allowed_address_pairs:
+        - ip_address:
+            get_input: cif_ims_core_v6_vip_0
+        port_cif_oam_0_port_3_fixed_ips:
+        - ip_address:
+            get_input: cif_oam_ip_2
+        port_cif_ims_core_0_port_network_role_tag: ims_core
+        port_cif_ims_li_0_port_allowed_address_pairs:
+        - ip_address:
+            get_input: cif_ims_li_v6_vip_0
+        port_cif_internal_0_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        port_cif_ims_li_0_port_network:
+        - get_input: ims_li_v6_net_id
+        port_cif_internal_0_port_security_groups:
+        - - cscf_RSG
+        port_cif_ims_li_0_port_network_role_tag: ims_li_v6
+        port_cif_oam_0_port_3_allowed_address_pairs:
+        - ip_address:
+            get_input: cif_oam_vip_1
+        port_cif_internal_0_port_fixed_ips:
+        - ip_address:
+            get_input: cif_internal_ip_0
+        - ip_address:
+            get_input: cif_internal_v6_ip_0
+        compute_cif_config_drive:
+        - true
+        port_cif_oam_0_port_3_name:
+        - str_replace:
+            template: $PREFIX$DELeth3
+            params:
+              $PREFIX:
+                get_input: cif_name_0
+              $DEL:
+                get_input: vcscf_name_delimeter
+        port_cif_oam_0_port_3_network:
+        - get_input: oam_net_id
+        port_cif_ims_core_0_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        port_cif_internal_0_port_allowed_address_pairs:
+        - ip_address:
+            get_input: cif_internal_vip_0
+        port_cif_oam_0_port_1_mac_requirements:
+          mac_count_required:
+            is_required: false
+        port_cif_oam_0_port_3_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: true
+        port_cif_internal_0_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: true
+        service_template_filter:
+          substitute_service_template: Nested_cifServiceTemplate.yaml
+          count: 1
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+      requirements:
+      - link_cif_cif_internal_0_port:
+          capability: tosca.capabilities.network.Linkable
+          node: cscf_internal_network_0
+          relationship: tosca.relationships.network.LinksTo
+      - dependency_cif_cif_internal_0_port:
+          capability: tosca.capabilities.Node
+          node: cscf_internal_network_0
+          relationship: tosca.relationships.DependsOn
+    abstract_cif_1:
+      type: org.openecomp.resource.abstract.nodes.cif_1
+      directives:
+      - substitutable
+      properties:
+        port_cif_oam_1_port_1_name:
+        - str_replace:
+            template: $PREFIX$DELeth1
+            params:
+              $PREFIX:
+                get_input: cif_name_1
+              $DEL:
+                get_input: vcscf_name_delimeter
+        port_cif_ims_core_1_port_security_groups:
+        - - cscf_RSG
+        port_cif_oam_1_port_1_mac_requirements:
+          mac_count_required:
+            is_required: false
+        port_cif_oam_1_port_3_network:
+        - get_input: oam_net_id
+        vm_flavor_name:
+          get_input: cif_flavor_name
+        vm_image_name:
+          get_input: cif_image_name
+        compute_cif_user_data_format:
+        - RAW
+        port_cif_oam_1_port_3_allowed_address_pairs:
+        - ip_address:
+            get_input: cif_oam_vip_1
+        compute_cif_scheduler_hints:
+        - group: cif_server_group_group
+        port_cif_oam_1_port_3_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: true
+        port_cif_internal_1_port_security_groups:
+        - - cscf_RSG
+        port_cif_oam_1_port_1_network:
+        - get_input: oam_net_id
+        port_cif_ims_core_1_port_network_role_tag: ims_core
+        port_cif_ims_li_1_port_security_groups:
+        - - cscf_RSG
+        port_cif_ims_li_1_port_allowed_address_pairs:
+        - ip_address:
+            get_input: cif_ims_li_v6_vip_0
+        port_cif_internal_1_port_allowed_address_pairs:
+        - ip_address:
+            get_input: cif_internal_vip_0
+        port_cif_oam_1_port_3_security_groups:
+        - - cscf_RSG
+        compute_cif_metadata:
+        - vf_module_id:
+            get_input: vf_module_id
+          vm_role: cif
+          vnf_id:
+            get_input: vnf_id
+          vnf_name:
+            get_input: vnf_name
+          vf_module_name:
+            get_input: vf_module_name
+        port_cif_oam_1_port_1_fixed_ips:
+        - ip_address:
+            get_input: cif_oam_ip_1
+        port_cif_internal_1_port_network:
+        - cscf_internal_network_0
+        port_cif_ims_core_1_port_network:
+        - get_input: ims_core_net_id
+        port_cif_oam_1_port_3_fixed_ips:
+        - ip_address:
+            get_input: cif_oam_ip_3
+        port_cif_oam_1_port_1_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: true
+        port_cif_ims_core_1_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        compute_cif_name:
+        - get_input: cif_name_1
+        compute_cif_availability_zone:
+        - get_input: availability_zone_1
+        port_cif_internal_1_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: true
+        port_cif_ims_li_1_port_name:
+        - str_replace:
+            template: $PREFIX$DELeth4
+            params:
+              $PREFIX:
+                get_input: cif_name_1
+              $DEL:
+                get_input: vcscf_name_delimeter
+        port_cif_internal_1_port_name:
+        - str_replace:
+            template: $PREFIX$DELeth0
+            params:
+              $PREFIX:
+                get_input: cif_name_1
+              $DEL:
+                get_input: vcscf_name_delimeter
+        port_cif_ims_li_1_port_fixed_ips:
+        - ip_address:
+            get_input: cif_ims_li_v6_ip_1
+        port_cif_internal_1_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        port_cif_ims_li_1_port_mac_requirements:
+          mac_count_required:
+            is_required: false
+        port_cif_ims_li_1_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: true
+        port_cif_ims_core_1_port_fixed_ips:
+        - ip_address:
+            get_input: cif_ims_core_v6_ip_1
+        port_cif_ims_core_1_port_allowed_address_pairs:
+        - ip_address:
+            get_input: cif_ims_core_v6_vip_0
+        port_cif_oam_1_port_1_network_role_tag: oam
+        port_cif_oam_1_port_3_mac_requirements:
+          mac_count_required:
+            is_required: false
+        port_cif_ims_core_1_port_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: true
+        port_cif_ims_li_1_port_network:
+        - get_input: ims_li_v6_net_id
+        port_cif_internal_1_port_fixed_ips:
+        - ip_address:
+            get_input: cif_internal_ip_1
+        - ip_address:
+            get_input: cif_internal_v6_ip_1
+        port_cif_ims_core_1_port_name:
+        - str_replace:
+            template: $PREFIX$DELeth2
+            params:
+              $PREFIX:
+                get_input: cif_name_1
+              $DEL:
+                get_input: vcscf_name_delimeter
+        compute_cif_config_drive:
+        - true
+        port_cif_oam_1_port_3_name:
+        - str_replace:
+            template: $PREFIX$DELeth3
+            params:
+              $PREFIX:
+                get_input: cif_name_0
+              $DEL:
+                get_input: vcscf_name_delimeter
+        port_cif_ims_li_1_port_network_role_tag: ims_li_v6
+        port_cif_oam_1_port_1_security_groups:
+        - - cscf_RSG
+        port_cif_oam_1_port_1_allowed_address_pairs:
+        - ip_address:
+            get_input: cif_oam_vip_0
+        port_cif_oam_1_port_3_network_role_tag: oam
+        service_template_filter:
+          substitute_service_template: Nested_cif_1ServiceTemplate.yaml
+          count: 1
+        index_value:
+          get_property:
+          - SELF
+          - service_template_filter
+          - index_value
+      requirements:
+      - link_cif_cif_internal_1_port:
+          capability: tosca.capabilities.network.Linkable
+          node: cscf_internal_network_0
+          relationship: tosca.relationships.network.LinksTo
+      - dependency_cif_cif_internal_1_port:
+          capability: tosca.capabilities.Node
+          node: cscf_internal_network_0
+          relationship: tosca.relationships.DependsOn
+  groups:
+    tdcore_zone_0_server_group_group:
+      type: tosca.groups.Root
+      members: [
+        ]
+    tdcore_zone_1_server_group_group:
+      type: tosca.groups.Root
+      members: [
+        ]
+    oam_server_group_group:
+      type: tosca.groups.Root
+      members:
+      - abstract_oam
+      - abstract_oam_1
+      - abstract_oam_2
+    cdi_server_group_group:
+      type: tosca.groups.Root
+      members:
+      - abstract_cdi
+      - abstract_cdi_1
+    cif_server_group_group:
+      type: tosca.groups.Root
+      members:
+      - abstract_cif
+      - abstract_cif_1
+    base_cscf_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/base_cscf.yaml
+        description: |
+          CFX-5000 N+K VNF HOT template for AT&T.
+      members:
+      - cscf_RSG
+      - cdi_internal_v6_vip_0_port
+      - cscf_internal_dpdk_network_0
+      - cif_ims_core_v6_vip_2_port
+      - cif_internal_vip_0_port
+      - cscf_zone_1_RRG
+      - oam_oam_vip_1_port
+      - tdcore_zone_0_RRG
+      - lbd_ims_core_v6_vip_2_port
+      - cif_oam_vip_1_port
+      - oam_internal_vip_0_port
+      - tdcore_zone_1_RRG
+      - cif_ims_li_v6_vip_4_port
+      - cscf_internal_network_0
+      - cscf_zone_0_RRG
+      - lbd_internal_dpdk_vip_1_port
+      - cif_oam_vip_3_port
+      - cdi_ims_core_v6_vip_1_port
+      - abstract_lbd
+      - abstract_lbd_1
+      - abstract_cif
+      - abstract_cif_1
+      - abstract_oam
+      - abstract_oam_1
+      - abstract_oam_2
+      - abstract_cdi
+      - abstract_cdi_1
+    base_cscf_volume_group:
+      type: org.openecomp.groups.heat.HeatStack
+      properties:
+        heat_file: ../Artifacts/base_cscf_volume.yaml
+        description: Volume template for CFX
+      members:
+      - oam_volume_1
+      - oam_volume_0
+      - cif_volume_0
+      - cif_volume_1
+    lbd_server_group_group:
+      type: tosca.groups.Root
+      members:
+      - abstract_lbd
+      - abstract_lbd_1
+  outputs:
+    oam_volume_id_1:
+      description: volume id for second oam
+      value: oam_volume_1
+    oam_volume_id_0:
+      description: volume id for first oam
+      value: oam_volume_0
+    cif_volume_id_0:
+      description: volume id for first cif
+      value: cif_volume_0
+    cif_volume_id_1:
+      description: volume id for second cif
+      value: cif_volume_1
+  policies:
+    oam_server_group_policy:
+      type: org.openecomp.policies.placement.Antilocate
+      properties:
+        name:
+          str_replace:
+            template: $VNF$DELoam$DELgroup
+            params:
+              $DEL:
+                get_input: vcscf_name_delimeter
+              $VNF:
+                get_input: vnf_name
+        container_type: host
+      targets:
+      - oam_server_group_group
+    cdi_server_group_policy:
+      type: org.openecomp.policies.placement.Antilocate
+      properties:
+        name:
+          str_replace:
+            template: $VNF$DELcdi$DELgroup
+            params:
+              $DEL:
+                get_input: vcscf_name_delimeter
+              $VNF:
+                get_input: vnf_name
+        container_type: host
+      targets:
+      - cdi_server_group_group
+    lbd_server_group_policy:
+      type: org.openecomp.policies.placement.Antilocate
+      properties:
+        name:
+          str_replace:
+            template: $VNF$DELlbd$DELgroup
+            params:
+              $DEL:
+                get_input: vcscf_name_delimeter
+              $VNF:
+                get_input: vnf_name
+        container_type: host
+      targets:
+      - lbd_server_group_group
+    tdcore_zone_0_server_group_policy:
+      type: org.openecomp.policies.placement.Antilocate
+      properties:
+        name:
+          str_replace:
+            template: $VNF$DELtdcore$DELzone0$DELgroup
+            params:
+              $DEL:
+                get_input: vcscf_name_delimeter
+              $VNF:
+                get_input: vnf_name
+        container_type: host
+      targets:
+      - tdcore_zone_0_server_group_group
+    cif_server_group_policy:
+      type: org.openecomp.policies.placement.Antilocate
+      properties:
+        name:
+          str_replace:
+            template: $VNF$DELcif$DELgroup
+            params:
+              $DEL:
+                get_input: vcscf_name_delimeter
+              $VNF:
+                get_input: vnf_name
+        container_type: host
+      targets:
+      - cif_server_group_group
+    tdcore_zone_1_server_group_policy:
+      type: org.openecomp.policies.placement.Antilocate
+      properties:
+        name:
+          str_replace:
+            template: $VNF$DELtdcore$DELzone1$DELgroup
+            params:
+              $DEL:
+                get_input: vcscf_name_delimeter
+              $VNF:
+                get_input: vnf_name
+        container_type: host
+      targets:
+      - tdcore_zone_1_server_group_group
\ No newline at end of file
index 3702b5a..281f71b 100644 (file)
@@ -2029,6 +2029,510 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
+  org.openecomp.resource.vfc.nodes.heat.vson_vm:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      vf_module_id:
+        type: string
+        description: Unique ID for this VF Module instance
+        required: true
+        status: SUPPORTED
+      vson_cluster_name:
+        type: string
+        description: Name of the vSON Cluster.
+        required: true
+        status: SUPPORTED
+      default_gateway:
+        type: string
+        description: Default gateway.
+        required: true
+        status: SUPPORTED
+      port_vson_server_oam_net_port_0_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      instance_index:
+        type: float
+        description: Index of the instance.
+        required: true
+        status: SUPPORTED
+      vnf_name:
+        type: string
+        description: Unique name for this VF instance.
+        required: true
+        status: SUPPORTED
+      oam_net_subnet_prefix_length:
+        type: string
+        description: Prefix length of the subnet on the OAM network.
+        required: true
+        status: SUPPORTED
+      swift_storage_url:
+        type: string
+        description: |
+          Swift storage URL. Example: http://172.16.209.246:8080/v1/AUTH_a4d426b5ef2e41408a8e6e6b9a8d3029 http://172.16.209.246:8080 - protocol, IP and port, v1 - API version AUTH_a4d426b5ef2e41408a8e6e6b9a8d3029 - account ID
+        required: true
+        status: SUPPORTED
+      vf_module_name:
+        type: string
+        description: Unique name for this VF module instance.
+        required: true
+        status: SUPPORTED
+      dns_servers:
+        type: list
+        description: List of DNS servers.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      oam_net_security_group_id:
+        type: string
+        description: |
+          The ID of Security group applied on the port bound to the vSON OAM network.
+        required: true
+        status: SUPPORTED
+      vson_vm_image_name:
+        type: string
+        description: VM Image name the vSON instance will be created from.
+        required: true
+        status: SUPPORTED
+      vnf_id:
+        type: string
+        description: Unique ID for this VF instance.
+        required: true
+        status: SUPPORTED
+      port_vson_server_oam_net_port_0_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      vson_clm_oam_net_ip:
+        type: string
+        description: IP of the vSON Cluster Manager.
+        required: true
+        status: SUPPORTED
+      port_vson_server_oam_net_port_0_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_vson_server_oam_net_port_0_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      oam_net_ips:
+        type: list
+        description: Fixed IP assignments for vSON instances on the OAM network.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      swift_son_container_name:
+        type: string
+        description: Swift container storing vSON artifacts.
+        required: true
+        status: SUPPORTED
+      vfc_role:
+        type: string
+        description: Unique ID for this VF Module instance
+        required: true
+        status: SUPPORTED
+      swift_account_auth_token:
+        type: string
+        description: |
+          Swift account auth token. Example:  041a5187bb4641f9b89583e2539776b0
+        required: true
+        status: SUPPORTED
+      vson_server_group_id:
+        type: string
+        description: |
+          Tells what policy should be applied to the ServerGroup. Affinity policy will force instances to share the same hypervisor. Anti-affinity will force instances to run in different hypervisors.
+        required: true
+        status: SUPPORTED
+      vson_vm_flavor_name:
+        type: string
+        description: The ID or name of the flavor to boot onto.
+        required: true
+        status: SUPPORTED
+      port_vson_server_oam_net_port_0_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_vson_server_oam_net_port_0_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      availability_zones:
+        type: list
+        description: List of availability zones.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      ntp_servers:
+        type: list
+        description: List of NTP servers.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      oam_net_id:
+        type: string
+        description: The ID of the OAM network.
+        required: true
+        status: SUPPORTED
+      port_vson_server_oam_net_port_0_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_vson_server_oam_net_port_0_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      vson_vm_names:
+        type: list
+        description: A list of unique names to be issued to the vSON Cluster leaders.
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+    requirements:
+    - dependency_vson_server:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_vson_server:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_vson_server_oam_net_port_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_vson_server_oam_net_port_0:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      disk.write.bytes_vson_server:
+        type: org.openecomp.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_vson_server:
+        type: org.openecomp.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_vson_server_oam_net_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.usage_vson_server:
+        type: org.openecomp.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_vson_server_oam_net_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.latency_vson_server:
+        type: org.openecomp.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_vson_server:
+        type: org.openecomp.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_vson_server:
+        type: org.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_vson_server:
+        type: org.openecomp.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_vson_server:
+        type: org.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_vson_server:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_vson_server_oam_net_port_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      instance_vson_server:
+        type: org.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_vson_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_vson_server_oam_net_port_0:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_vson_server:
+        type: org.openecomp.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_vson_server_oam_net_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes_vson_server:
+        type: org.openecomp.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_vson_server:
+        type: org.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_vson_server:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      vcpus_vson_server:
+        type: org.openecomp.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_vson_server_oam_net_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.rate_vson_server:
+        type: org.openecomp.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_vson_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_vson_server:
+        type: org.openecomp.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_vson_server:
+        type: org.openecomp.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_vson_server:
+        type: org.openecomp.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_vson_server:
+        type: org.openecomp.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_vson_server_oam_net_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes_vson_server:
+        type: org.openecomp.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_vson_server:
+        type: org.openecomp.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_vson_server:
+        type: org.openecomp.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_vson_server_oam_net_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.root.size_vson_server:
+        type: org.openecomp.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_vson_server:
+        type: org.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_vson_server:
+        type: org.openecomp.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_vson_server:
+        type: org.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_vson_server:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_vson_server_oam_net_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests_vson_server:
+        type: org.openecomp.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_vson_server:
+        type: org.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_vson_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.usage_vson_server:
+        type: org.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_vson_server:
+        type: org.openecomp.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_vson_server:
+        type: org.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_vson_server:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.allocation_vson_server:
+        type: org.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_vson_server:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      host_vson_server:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_vson_server_oam_net_port_0:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      network.incoming.bytes.rate_vson_server_oam_net_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.requests_vson_server:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
   org.openecomp.resource.abstract.nodes.heat.vson_vm_8:
     derived_from: org.openecomp.resource.abstract.nodes.VFC
     properties:
index 17124e4..862c5a6 100644 (file)
@@ -1060,19 +1060,8 @@ topology_template:
       requirements:
       - dependency_vson_server:
           capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
+          node: oam_net_security_group
           relationship: tosca.relationships.DependsOn
-      - local_storage_vson_server:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
-      - dependency_vson_server_oam_net_port_0:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_vson_server_oam_net_port_0:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
     vson_mgt_group:
       type: org.openecomp.resource.abstract.nodes.heat.vson_vm_2
       directives:
@@ -1137,22 +1126,6 @@ topology_template:
           get_input: oam_net_id
         vson_vm_names:
         - get_input: vson_mgt_name_0
-      requirements:
-      - dependency_vson_server:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_vson_server:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
-      - dependency_vson_server_oam_net_port_0:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_vson_server_oam_net_port_0:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
     vson_dbs_volume_1:
       type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
       properties:
@@ -1235,22 +1208,6 @@ topology_template:
           get_input: oam_net_id
         vson_vm_names:
         - get_input: vson_dbc_name_0
-      requirements:
-      - dependency_vson_server:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_vson_server:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
-      - dependency_vson_server_oam_net_port_0:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_vson_server_oam_net_port_0:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
     vson_dbs_volume_0:
       type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
       properties:
@@ -1330,22 +1287,6 @@ topology_template:
           get_input: oam_net_id
         vson_vm_names:
         - get_input: vson_clm_name_0
-      requirements:
-      - dependency_vson_server:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_vson_server:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
-      - dependency_vson_server_oam_net_port_0:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_vson_server_oam_net_port_0:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
     vson_dcl_volume_2:
       type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
       properties:
@@ -1464,22 +1405,6 @@ topology_template:
           get_input: oam_net_id
         vson_vm_names:
         - get_input: vson_mdr_name_0
-      requirements:
-      - dependency_vson_server:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_vson_server:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
-      - dependency_vson_server_oam_net_port_0:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_vson_server_oam_net_port_0:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
     vson_dbs_group:
       type: org.openecomp.resource.abstract.nodes.heat.vson_vm_1
       directives:
@@ -1552,22 +1477,6 @@ topology_template:
         vson_vm_names:
         - get_input: vson_dbs_name_0
         - get_input: vson_dbs_name_1
-      requirements:
-      - dependency_vson_server:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_vson_server:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
-      - dependency_vson_server_oam_net_port_0:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_vson_server_oam_net_port_0:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
     vson_app_group:
       type: org.openecomp.resource.abstract.nodes.heat.vson_vm
       directives:
@@ -1642,22 +1551,6 @@ topology_template:
           get_input: oam_net_id
         vson_vm_names:
         - get_input: vson_app_name_0
-      requirements:
-      - dependency_vson_server:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_vson_server:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
-      - dependency_vson_server_oam_net_port_0:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_vson_server_oam_net_port_0:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
     oam_net_security_group:
       type: org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules
       properties:
@@ -1884,22 +1777,6 @@ topology_template:
           get_input: oam_net_id
         vson_vm_names:
         - get_input: vson_dbg_name_0
-      requirements:
-      - dependency_vson_server:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_vson_server:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
-      - dependency_vson_server_oam_net_port_0:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_vson_server_oam_net_port_0:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
     vson_cll_group:
       type: org.openecomp.resource.abstract.nodes.heat.vson_vm_1
       directives:
@@ -1975,22 +1852,6 @@ topology_template:
         - get_input: vson_cll_name_0
         - get_input: vson_cll_name_1
         - get_input: vson_cll_name_2
-      requirements:
-      - dependency_vson_server:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_vson_server:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
-      - dependency_vson_server_oam_net_port_0:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_vson_server_oam_net_port_0:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
     vson_app_volume_0:
       type: org.openecomp.resource.vfc.nodes.heat.cinder.Volume
       properties:
@@ -2069,22 +1930,6 @@ topology_template:
           get_input: oam_net_id
         vson_vm_names:
         - get_input: vson_mon_name_0
-      requirements:
-      - dependency_vson_server:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_vson_server:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
-      - dependency_vson_server_oam_net_port_0:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_vson_server_oam_net_port_0:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
     vson_dcl_group:
       type: org.openecomp.resource.abstract.nodes.heat.vson_vm_1
       directives:
@@ -2161,22 +2006,6 @@ topology_template:
         - get_input: vson_dcl_name_0
         - get_input: vson_dcl_name_1
         - get_input: vson_dcl_name_2
-      requirements:
-      - dependency_vson_server:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_vson_server:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
-      - dependency_vson_server_oam_net_port_0:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_vson_server_oam_net_port_0:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
   groups:
     module_5_vson_dbg_volume_group:
       type: org.openecomp.groups.heat.HeatStack
index 535f2ea..e92abe8 100644 (file)
@@ -1384,6 +1384,157 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
+  org.openecomp.resource.vfc.nodes.heat.cmaui:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      port_cmaui_port_1_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_2_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_1_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_1_security_groups:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      compute_cmaui_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cmaui_port_2_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_1_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      compute_cmaui_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cmaui_port_1_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      port_cmaui_port_1_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_2_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_2_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_cmaui_port_2_security_groups:
+        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_cmaui_port_1_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_cmaui_port_1_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_2_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_1_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_cmaui_port_1_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cmaui_port_2_replacement_policy:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cmaui_port_1_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_2_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_cmaui_port_2_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      port_cmaui_port_2_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_cmaui_port_2_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_2_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_cmaui_port_1_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
   org.openecomp.resource.abstract.nodes.cmaui_1:
     derived_from: org.openecomp.resource.abstract.nodes.VFC
     properties:
@@ -6453,3 +6604,24 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
+  org.openecomp.resource.vfc.nodes.heat.jsa:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      compute_jsa_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      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
\ No newline at end of file
index e7f660f..78e72c4 100644 (file)
@@ -89,29 +89,6 @@ topology_template:
             is_required: true
           floating_ip_count_required:
             is_required: false
-      requirements:
-      - dependency_cmaui_port_7:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_cmaui_port_7:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
-      - dependency_cmaui_port_8:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_cmaui_port_8:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
-      - dependency_server_cmaui:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_server_cmaui:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
     abstract_cmaui:
       type: org.openecomp.resource.abstract.nodes.cmaui
       directives:
index 90dfb74..05256ec 100644 (file)
@@ -1712,8 +1712,8 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
-  org.openecomp.resource.abstract.nodes.heat.pcm_server_1:
-    derived_from: org.openecomp.resource.abstract.nodes.VFC
+  org.openecomp.resource.vfc.nodes.heat.pcm_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
     properties:
       port_pcm_port_0_network_role:
         type: string
@@ -2281,304 +2281,1485 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
-  org.openecomp.resource.abstract.nodes.compute:
+  org.openecomp.resource.abstract.nodes.heat.pcm_server_1:
     derived_from: org.openecomp.resource.abstract.nodes.VFC
     properties:
-      compute_compute_user_data_format:
+      port_pcm_port_0_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      p1:
+        type: string
+        description: UID of OAM network
+        required: true
+        status: SUPPORTED
+      p2:
+        type: string
+        description: UID of OAM network
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      availabilityzone_name:
+        type: string
+        description: availabilityzone name
+        required: true
+        status: SUPPORTED
+      port_pcm_port_0_vlan_requirements:
         type: list
         required: true
         status: SUPPORTED
         entry_schema:
-          type: string
-      vm_image_name:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      pcm_image_name:
         type: string
+        description: PCRF CM image name
         required: true
         status: SUPPORTED
-      index_value:
+      port_pcm_port_0_order:
         type: integer
-        description: Index value of this substitution service template runtime instance
-        required: false
-        default: 0
+        required: true
         status: SUPPORTED
-        constraints:
-        - greater_or_equal: 0
-      compute_compute_metadata:
+      port_pcm_port_0_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pcm_port_0_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      pcm_server_name:
+        type: string
+        description: PCRF CM server name
+        required: true
+        status: SUPPORTED
+      cps_net_mask:
+        type: string
+        description: CPS network mask
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_pcm_port_0_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      oam_net_name:
+        type: string
+        description: OAM network name
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pcm_port_0_ip_requirements:
         type: list
         required: true
         status: SUPPORTED
         entry_schema:
-          type: json
-      compute_compute_name:
+          type: org.openecomp.datatypes.network.IpRequirements
+      oam_net_gw:
+        type: string
+        description: CPS network gateway
+        required: true
+        status: SUPPORTED
+      security_group_name:
+        type: string
+        description: the name of security group
+        required: true
+        status: SUPPORTED
+      cps_net_ip:
+        type: string
+        description: CPS network ip
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_vlan_requirements:
         type: list
         required: true
         status: SUPPORTED
         entry_schema:
-          type: string
-      vm_flavor_name:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      pcm_flavor_name:
         type: string
+        description: flavor name of PCRF CM instance
         required: true
         status: SUPPORTED
-      compute_compute_config_drive:
+      pcm_vol:
+        type: string
+        description: CPS Cluman Cinder Volume
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_ip_requirements:
         type: list
         required: true
         status: SUPPORTED
         entry_schema:
-          type: boolean
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_pcm_port_0_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      cps_net_name:
+        type: string
+        description: CPS network name
+        required: true
+        status: SUPPORTED
+      oam_net_ip:
+        type: string
+        description: OAM network ip
+        required: true
+        status: SUPPORTED
+      oam_net_mask:
+        type: string
+        description: CPS network mask
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+    attributes:
+      server_pcm_id:
+        type: string
+        description: the pcm nova service id
+        status: SUPPORTED
     requirements:
-    - dependency_compute:
+    - dependency_pcm_port_1:
         capability: tosca.capabilities.Node
         node: tosca.nodes.Root
         relationship: tosca.relationships.DependsOn
         occurrences:
         - 0
         - UNBOUNDED
-    - local_storage_compute:
+    - link_pcm_port_1:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_server_pcm:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_server_pcm:
         capability: tosca.capabilities.Attachment
         node: tosca.nodes.BlockStorage
         relationship: tosca.relationships.AttachesTo
         occurrences:
         - 0
         - UNBOUNDED
+    - dependency_pcm_port_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pcm_port_0:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
     capabilities:
-      disk.device.usage_compute:
+      network.incoming.packets.rate_pcm_port_0:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.write.requests_compute:
+      cpu_server_pcm:
         type: org.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_compute:
+      network.incoming.packets.rate_pcm_port_1:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.ephemeral.size_compute:
+      network.outpoing.packets_pcm_port_1:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.read.bytes.rate_compute:
+      memory_server_pcm:
         type: org.openecomp.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_compute:
+      disk.write.requests_server_pcm:
         type: org.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_compute:
+      network.outpoing.packets_pcm_port_0:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      memory_compute:
+      disk.device.iops_server_pcm:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.iops_compute:
+      memory.resident_server_pcm:
         type: org.openecomp.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_compute:
+      disk.device.write.requests_server_pcm:
         type: org.openecomp.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_compute:
+      disk.device.usage_server_pcm:
         type: org.openecomp.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_compute:
+      disk.allocation_server_pcm:
         type: org.openecomp.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_compute:
+      disk.usage_server_pcm:
         type: org.openecomp.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_compute:
+      disk.device.write.bytes_server_pcm:
         type: org.openecomp.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_compute:
+      disk.root.size_server_pcm:
         type: org.openecomp.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_compute:
+      disk.ephemeral.size_server_pcm:
         type: org.openecomp.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_compute:
+      disk.device.latency_server_pcm:
         type: org.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_compute:
-        type: tosca.capabilities.OperatingSystem
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.write.bytes.rate_compute:
+      network.incoming.bytes_pcm_port_0:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      vcpus_compute:
+      network.incoming.bytes_pcm_port_1:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.capacity_compute:
+      binding_pcm_port_0:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      binding_pcm_port_1:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      memory.usage_server_pcm:
         type: org.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_compute:
+      disk.read.requests_server_pcm:
         type: org.openecomp.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_compute:
+      disk.capacity_server_pcm:
         type: org.openecomp.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_compute:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      os_server_pcm:
+        type: tosca.capabilities.OperatingSystem
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.write.requests_compute:
+      disk.read.bytes_server_pcm:
         type: org.openecomp.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_compute:
+      network.outgoing.packets.rate_pcm_port_0:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.write.requests.rate_compute:
+      network.outgoing.packets.rate_pcm_port_1:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      endpoint_compute:
-        type: tosca.capabilities.Endpoint.Admin
+      feature_pcm_port_1:
+        type: tosca.capabilities.Node
         occurrences:
         - 1
         - UNBOUNDED
-      memory.usage_compute:
+      network.outgoing.bytes_pcm_port_0:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      host_compute:
+      disk.device.read.bytes_server_pcm:
+        type: org.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_pcm_port_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_pcm_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_pcm_port_0:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_pcm_port_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      endpoint_server_pcm:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.rate_server_pcm:
+        type: org.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.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_server_pcm:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes.rate_server_pcm:
+        type: org.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.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_server_pcm:
         type: tosca.capabilities.Container
         valid_source_types:
         - tosca.nodes.SoftwareComponent
         occurrences:
         - 1
         - UNBOUNDED
-      feature_compute:
+      cpu.delta_server_pcm:
+        type: org.openecomp.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_pcm_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_pcm_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_server_pcm:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_pcm_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.capacity_server_pcm:
+        type: org.openecomp.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_pcm_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      instance_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.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_server_pcm:
         type: tosca.capabilities.Node
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.write.bytes_compute:
+      network.incoming.bytes.rate_pcm_port_0:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      cpu_compute:
+      disk.write.bytes.rate_server_pcm:
         type: org.openecomp.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_compute:
+      network.incoming.bytes.rate_pcm_port_1:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      scalable_compute:
-        type: tosca.capabilities.Scalable
+  org.openecomp.resource.abstract.nodes.compute:
+    derived_from: org.openecomp.resource.abstract.nodes.VFC
+    properties:
+      compute_compute_user_data_format:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      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
+      compute_compute_metadata:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      compute_compute_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      compute_compute_config_drive:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: boolean
+    requirements:
+    - dependency_compute:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_compute:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    capabilities:
+      disk.device.usage_compute:
+        type: org.openecomp.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_compute:
+      disk.write.requests_compute:
         type: org.openecomp.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_compute:
+      instance_compute:
         type: org.openecomp.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_compute:
+      disk.ephemeral.size_compute:
         type: org.openecomp.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_compute:
+      disk.device.read.bytes.rate_compute:
         type: org.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_compute:
+      disk.latency_compute:
         type: org.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_compute:
-        type: tosca.capabilities.network.Bindable
+      memory.resident_compute:
+        type: org.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_compute:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_compute:
+        type: org.openecomp.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.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_compute:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes.rate_compute:
+        type: org.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_compute:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_compute:
+        type: org.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.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_compute:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.usage_compute:
+        type: org.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_compute:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_compute:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes_compute:
+        type: org.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.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_compute:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests_compute:
+        type: org.openecomp.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.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_compute:
+        type: org.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_compute:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.vfc.nodes.heat.oam_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      p2:
+        type: string
+        description: UID of OAM network
+        required: true
+        status: SUPPORTED
+      port_oam_port_1_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      availabilityzone_name:
+        type: string
+        description: availabilityzone name
+        required: true
+        status: SUPPORTED
+      port_oam_port_0_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_oam_port_1_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      oam_server_name:
+        type: string
+        description: oam server name
+        required: true
+        status: SUPPORTED
+      port_oam_port_0_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_oam_port_1_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_oam_port_1_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_oam_port_1_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_oam_port_1_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_oam_port_0_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_oam_port_1_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      oam_image_name:
+        type: string
+        description: oam image name
+        required: true
+        status: SUPPORTED
+      cps_net_mask:
+        type: string
+        description: CPS network mask
+        required: true
+        status: SUPPORTED
+      oam_net_name:
+        type: string
+        description: OAM network name
+        required: true
+        status: SUPPORTED
+      oam_net_gw:
+        type: string
+        description: CPS network gateway
+        required: true
+        status: SUPPORTED
+      port_oam_port_0_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      oam_flavor_name:
+        type: string
+        description: flavor name of PCRF CM instance
+        required: true
+        status: SUPPORTED
+      security_group_name:
+        type: string
+        description: the name of security group
+        required: true
+        status: SUPPORTED
+      cps_net_ip:
+        type: string
+        description: CPS network ip
+        required: true
+        status: SUPPORTED
+      port_oam_port_0_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_oam_port_0_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_oam_port_1_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_oam_port_0_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      pcm_vol:
+        type: string
+        description: CPS Cluman Cinder Volume
+        required: true
+        status: SUPPORTED
+      cps_net_name:
+        type: string
+        description: CPS network name
+        required: true
+        status: SUPPORTED
+      oam_net_ip:
+        type: string
+        description: OAM network ip
+        required: true
+        status: SUPPORTED
+      oam_net_mask:
+        type: string
+        description: CPS network mask
+        required: true
+        status: SUPPORTED
+      port_oam_port_0_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      shared_security_group_id1:
+        type: string
+        description: UID of OAM network
+        required: true
+        status: SUPPORTED
+    attributes:
+      server_oam_id:
+        type: string
+        description: the oam nova service id
+        status: SUPPORTED
+    requirements:
+    - dependency_oam_port_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_oam_port_0:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_server_oam:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_server_oam:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_oam_port_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_oam_port_1:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      cpu_server_oam:
+        type: org.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_server_oam:
+        type: org.openecomp.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_server_oam:
+        type: org.openecomp.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_oam_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_oam_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_oam_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.resident_server_oam:
+        type: org.openecomp.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_oam_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.iops_server_oam:
+        type: org.openecomp.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_oam_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_oam_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.requests_server_oam:
+        type: org.openecomp.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_oam_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.allocation_server_oam:
+        type: org.openecomp.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_oam_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.usage_server_oam:
+        type: org.openecomp.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_oam_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_oam_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.usage_server_oam:
+        type: org.openecomp.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_server_oam:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_oam_port_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_oam_port_0:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.ephemeral.size_server_oam:
+        type: org.openecomp.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_server_oam:
+        type: org.openecomp.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_server_oam:
+        type: org.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_server_oam:
+        type: org.openecomp.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_server_oam:
+        type: org.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_server_oam:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.requests_server_oam:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_server_oam:
+        type: org.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_oam_port_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes_server_oam:
+        type: org.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_server_oam:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.rate_server_oam:
+        type: org.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_server_oam:
+        type: org.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_oam_port_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes.rate_server_oam:
+        type: org.openecomp.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_server_oam:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_server_oam:
+        type: org.openecomp.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_oam_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.allocation_server_oam:
+        type: org.openecomp.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_oam_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests.rate_server_oam:
+        type: org.openecomp.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_oam_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      scalable_server_oam:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes.rate_server_oam:
+        type: org.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_oam_port_0:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      network.incoming.packets_oam_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_oam_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_util_server_oam:
+        type: org.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_oam_port_1:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      network.outpoing.packets_oam_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu.delta_server_oam:
+        type: org.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_server_oam:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes.rate_server_oam:
+        type: org.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_server_oam:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.capacity_server_oam:
+        type: org.openecomp.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_server_oam:
+        type: org.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_server_oam:
+        type: org.openecomp.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_server_oam:
+        type: org.openecomp.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_server_oam:
+        type: org.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_server_oam:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes.rate_server_oam:
+        type: org.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.vfc.nodes.heat.compute:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      compute_compute_user_data_format:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      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
+      compute_compute_metadata:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      compute_compute_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      compute_compute_config_drive:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: boolean
\ No newline at end of file
index b1f6c7e..e44327f 100644 (file)
@@ -105,11 +105,6 @@ topology_template:
       type: string
       description: PCRF CM image name
       default: rhel2
-    shared_security_group_id2:
-      hidden: false
-      immutable: false
-      type: string
-      description: network name of jsa log network
     oam_server_names:
       label: PCRF CM server names
       hidden: false
@@ -141,11 +136,6 @@ topology_template:
       type: string
       description: CPS network mask
       default: 255.255.255.0
-    shared_security_group_id1:
-      hidden: false
-      immutable: false
-      type: string
-      description: network name of jsa log network
     oam_net_name:
       label: OAM network name
       hidden: false
@@ -161,10 +151,8 @@ topology_template:
       properties:
         pcm_flavor_name:
           get_input: pcm_flavor_name
-        p1: jsa_security_group1
         service_template_filter:
           substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
-        p2: jsa_security_group2
         port_pcm_port_1_network_role_tag: oam
         port_pcm_port_0_ip_requirements:
         - ip_version: 4
@@ -191,68 +179,53 @@ topology_template:
           get_input:
           - pcm_server_names
           - 0
-      requirements:
-      - dependency_pcm_port_1:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_port_1:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
-      - dependency_server_pcm:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_server_pcm:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
-      - dependency_pcm_port_0:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_port_0:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
     server_oam_001:
       type: org.openecomp.resource.abstract.nodes.heat.oam_server
       directives:
       - substitutable
       properties:
+        port_pcm_port_1_network_role_tag: oam
         availabilityzone_name:
           get_input: availabilityzone_name
+        port_pcm_port_0_ip_requirements:
+        - ip_version: 4
+          ip_count_required:
+            is_required: true
+          floating_ip_count_required:
+            is_required: false
         oam_net_gw:
           get_input: oam_net_gw
-        port_oam_port_0_mac_requirements:
-          mac_count_required:
-            is_required: false
         oam_flavor_name:
           get_input: oam_flavor_name
+        security_group_name:
+          get_input: security_group_name
         cps_net_ip:
           get_input:
           - cps_net_ips
           - 0
-        port_oam_port_1_network_role_tag: oam
         oam_server_name:
           get_input:
           - oam_server_names
           - 0
+        port_pcm_port_1_mac_requirements:
+          mac_count_required:
+            is_required: false
         service_template_filter:
           substitute_service_template: nested-oam_v0.1ServiceTemplate.yaml
-        port_oam_port_1_ip_requirements:
+        pcm_vol:
+          get_input:
+          - pcm_volumes
+          - 0
+        port_pcm_port_1_ip_requirements:
         - ip_version: 4
           ip_count_required:
             is_required: true
           floating_ip_count_required:
             is_required: false
-        port_oam_port_1_mac_requirements:
+        port_pcm_port_0_network_role_tag: cps
+        port_pcm_port_0_mac_requirements:
           mac_count_required:
             is_required: false
-        pcm_vol:
-          get_input:
-          - pcm_volumes
-          - 0
-        port_oam_port_0_network_role_tag: cps
         oam_image_name:
           get_input: oam_image_name
         cps_net_name:
@@ -265,42 +238,17 @@ topology_template:
           - 0
         oam_net_mask:
           get_input: oam_net_mask
-        port_oam_port_0_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
         oam_net_name:
           get_input: oam_net_name
-      requirements:
-      - dependency_oam_port_0:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_oam_port_0:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
-      - dependency_server_oam:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_server_oam:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
-      - dependency_oam_port_1:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_oam_port_1:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
     server_pcm_001:
       type: org.openecomp.resource.abstract.nodes.heat.pcm_server
       directives:
       - substitutable
       properties:
+        metadata:
+          get_attribute:
+          - compute_port_0
+          - device_id
         port_pcm_port_1_network_role_tag: oam
         availabilityzone_name:
           get_input: availabilityzone_name
@@ -325,8 +273,16 @@ topology_template:
             is_required: false
         pcm_flavor_name:
           get_input: pcm_flavor_name
+        key_name:
+          get_attribute:
+          - server_oam_001
+          - accessIPv4
         service_template_filter:
           substitute_service_template: nested-pcm_v0.1ServiceTemplate.yaml
+        user_data_format:
+          get_attribute:
+          - server_pcm_002
+          - oam_net_gw
         pcm_vol:
           get_input:
           - pcm_volumes
@@ -357,43 +313,17 @@ topology_template:
           get_input: oam_net_mask
         oam_net_name:
           get_input: oam_net_name
-      requirements:
-      - dependency_pcm_port_1:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_port_1:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
-      - dependency_server_pcm:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_server_pcm:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
-      - dependency_pcm_port_0:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_port_0:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
     packet_mirror_network:
       type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
       properties:
+        tenant_id:
+          get_attribute:
+          - abstract_compute
+          - compute_instance_name
         network_name:
-          get_input: net_name
-      requirements:
-      - dependency:
-          capability: tosca.capabilities.Node
-          node: server_pcm_001
-          relationship: tosca.relationships.DependsOn
-      - dependency:
-          capability: feature_compute
-          node: abstract_compute
-          relationship: tosca.relationships.DependsOn
+          get_attribute:
+          - server_pcm_001
+          - instance_name
     compute_port_0:
       type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
       properties:
@@ -408,104 +338,6 @@ topology_template:
             is_required: false
         network:
           get_input: net_name
-    jsa_security_group1:
-      type: org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules
-      properties:
-        name: jsa_security_group1_name
-        description: ems security group
-        rules:
-        - protocol: icmp
-          ethertype: IPv6
-          remote_ip_prefix: ::/0
-          direction: ingress
-      requirements:
-      - port:
-          capability: attachment_pcm_port_0
-          node: server_pcm_002
-          relationship: org.openecomp.relationships.AttachesTo
-      - port:
-          capability: attachment_pcm_port_1
-          node: server_pcm_002
-          relationship: org.openecomp.relationships.AttachesTo
-      - port:
-          capability: attachment_oam_port_1
-          node: test_shared_node_connected_in_nested
-          relationship: org.openecomp.relationships.AttachesTo
-      - port:
-          capability: attachment_oam_port_0
-          node: test_shared_node_connected_in_nested
-          relationship: org.openecomp.relationships.AttachesTo
-    jsa_security_group2:
-      type: org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules
-      properties:
-        name: jsa_security_group2_name
-        description: ems security group
-        rules:
-        - protocol: tcp
-          ethertype: IPv4
-          port_range_max: 65535
-          remote_ip_prefix: 0.0.0.0/0
-          direction: egress
-          port_range_min: 1
-      requirements:
-      - port:
-          capability: attachment_pcm_port_0
-          node: server_pcm_002
-          relationship: org.openecomp.relationships.AttachesTo
-    test_shared_node_connected_in_nested:
-      type: org.openecomp.resource.abstract.nodes.heat.oam_server
-      directives:
-      - substitutable
-      properties:
-        service_template_filter:
-          substitute_service_template: nested-oam_v0.1ServiceTemplate.yaml
-        p2:
-          get_input: shared_security_group_id2
-        port_oam_port_1_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        port_oam_port_1_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_oam_port_0_mac_requirements:
-          mac_count_required:
-            is_required: false
-        port_oam_port_0_network_role_tag: cps
-        port_oam_port_1_network_role_tag: oam
-        port_oam_port_0_ip_requirements:
-        - ip_version: 4
-          ip_count_required:
-            is_required: true
-          floating_ip_count_required:
-            is_required: false
-        shared_security_group_id1:
-          get_input: shared_security_group_id1
-      requirements:
-      - dependency_oam_port_0:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_oam_port_0:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
-      - dependency_server_oam:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_server_oam:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
-      - dependency_oam_port_1:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_oam_port_1:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
     abstract_compute:
       type: org.openecomp.resource.abstract.nodes.compute
       directives:
@@ -519,8 +351,8 @@ topology_template:
           get_input: compute_image_name
         compute_compute_metadata:
         - get_attribute:
-          - server_pcm_001
-          - server_pcm_id
+          - compute_port_0
+          - device_id
         compute_compute_name:
         - compute_name: null
         vm_flavor_name:
@@ -563,14 +395,4 @@ topology_template:
       - server_pcm_001
       - packet_mirror_network
       - compute_port_0
-      - jsa_security_group1
-      - jsa_security_group2
-      - abstract_compute
-    addOn_group:
-      type: org.openecomp.groups.heat.HeatStack
-      properties:
-        heat_file: ../Artifacts/addOn.yml
-        description: |
-          Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
-      members:
-      - test_shared_node_connected_in_nested
\ No newline at end of file
+      - abstract_compute
\ No newline at end of file
index 2eeae9a..34e096b 100644 (file)
@@ -1133,8 +1133,8 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
-  org.openecomp.resource.abstract.nodes.heat.pcm_server_1:
-    derived_from: org.openecomp.resource.abstract.nodes.VFC
+  org.openecomp.resource.vfc.nodes.heat.pcm_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
     properties:
       port_pcm_port_0_network_role:
         type: string
@@ -1702,296 +1702,1459 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
-  org.openecomp.resource.abstract.nodes.compute:
+  org.openecomp.resource.abstract.nodes.heat.pcm_server_1:
     derived_from: org.openecomp.resource.abstract.nodes.VFC
     properties:
-      vm_image_name:
+      port_pcm_port_0_network_role:
         type: string
         required: true
         status: SUPPORTED
-      index_value:
+      metadata:
+        type: string
+        description: metadata
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      availabilityzone_name:
+        type: string
+        description: availabilityzone name
+        required: true
+        status: SUPPORTED
+      port_pcm_port_0_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      pcm_image_name:
+        type: string
+        description: PCRF CM image name
+        required: true
+        status: SUPPORTED
+      port_pcm_port_0_order:
         type: integer
-        description: Index value of this substitution service template runtime instance
-        required: false
-        default: 0
+        required: true
         status: SUPPORTED
-        constraints:
-        - greater_or_equal: 0
-      compute_compute_name:
+      port_pcm_port_0_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pcm_port_0_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      pcm_server_name:
+        type: string
+        description: PCRF CM server name
+        required: true
+        status: SUPPORTED
+      cps_net_mask:
+        type: string
+        description: CPS network mask
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_pcm_port_0_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      oam_net_name:
+        type: string
+        description: OAM network name
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pcm_port_0_ip_requirements:
         type: list
         required: true
         status: SUPPORTED
         entry_schema:
-          type: string
-      vm_flavor_name:
+          type: org.openecomp.datatypes.network.IpRequirements
+      oam_net_gw:
         type: string
+        description: CPS network gateway
         required: true
         status: SUPPORTED
-      compute_compute_config_drive:
+      security_group_name:
+        type: string
+        description: the name of security group
+        required: true
+        status: SUPPORTED
+      cps_net_ip:
+        type: string
+        description: CPS network ip
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_vlan_requirements:
         type: list
         required: true
         status: SUPPORTED
         entry_schema:
-          type: boolean
+          type: org.openecomp.datatypes.network.VlanRequirements
+      pcm_flavor_name:
+        type: string
+        description: flavor name of PCRF CM instance
+        required: true
+        status: SUPPORTED
+      user_data_format:
+        type: string
+        description: user_data_format
+        required: true
+        status: SUPPORTED
+      pcm_vol:
+        type: string
+        description: CPS Cluman Cinder Volume
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_pcm_port_0_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      cps_net_name:
+        type: string
+        description: CPS network name
+        required: true
+        status: SUPPORTED
+      oam_net_ip:
+        type: string
+        description: OAM network ip
+        required: true
+        status: SUPPORTED
+      oam_net_mask:
+        type: string
+        description: CPS network mask
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_order:
+        type: integer
+        required: true
+        status: SUPPORTED
     attributes:
-      compute_instance_name:
+      server_pcm_id:
         type: string
+        description: the pcm nova service id
         status: SUPPORTED
     requirements:
-    - dependency_compute:
+    - dependency_pcm_port_1:
         capability: tosca.capabilities.Node
         node: tosca.nodes.Root
         relationship: tosca.relationships.DependsOn
         occurrences:
         - 0
         - UNBOUNDED
-    - local_storage_compute:
+    - link_pcm_port_1:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_server_pcm:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_server_pcm:
         capability: tosca.capabilities.Attachment
         node: tosca.nodes.BlockStorage
         relationship: tosca.relationships.AttachesTo
         occurrences:
         - 0
         - UNBOUNDED
+    - dependency_pcm_port_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pcm_port_0:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
     capabilities:
-      disk.device.usage_compute:
+      network.incoming.packets.rate_pcm_port_0:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.write.requests_compute:
+      cpu_server_pcm:
         type: org.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_compute:
+      network.incoming.packets.rate_pcm_port_1:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.ephemeral.size_compute:
+      network.outpoing.packets_pcm_port_1:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.read.bytes.rate_compute:
+      memory_server_pcm:
         type: org.openecomp.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_compute:
+      disk.write.requests_server_pcm:
         type: org.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_compute:
+      network.outpoing.packets_pcm_port_0:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      memory_compute:
+      disk.device.iops_server_pcm:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.iops_compute:
+      memory.resident_server_pcm:
         type: org.openecomp.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_compute:
+      disk.device.write.requests_server_pcm:
         type: org.openecomp.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_compute:
+      disk.device.usage_server_pcm:
         type: org.openecomp.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_compute:
+      disk.allocation_server_pcm:
         type: org.openecomp.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_compute:
+      disk.usage_server_pcm:
         type: org.openecomp.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_compute:
+      disk.device.write.bytes_server_pcm:
         type: org.openecomp.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_compute:
+      disk.root.size_server_pcm:
         type: org.openecomp.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_compute:
+      disk.ephemeral.size_server_pcm:
         type: org.openecomp.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_compute:
+      disk.device.latency_server_pcm:
         type: org.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_compute:
-        type: tosca.capabilities.OperatingSystem
-        occurrences:
-        - 1
-        - UNBOUNDED
-      disk.write.bytes.rate_compute:
+      network.incoming.bytes_pcm_port_0:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      vcpus_compute:
+      network.incoming.bytes_pcm_port_1:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.capacity_compute:
+      binding_pcm_port_0:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      binding_pcm_port_1:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      memory.usage_server_pcm:
         type: org.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_compute:
+      disk.read.requests_server_pcm:
         type: org.openecomp.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_compute:
+      disk.capacity_server_pcm:
         type: org.openecomp.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_compute:
-        type: org.openecomp.capabilities.metric.Ceilometer
-        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+      os_server_pcm:
+        type: tosca.capabilities.OperatingSystem
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.write.requests_compute:
+      disk.read.bytes_server_pcm:
         type: org.openecomp.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_compute:
+      network.outgoing.packets.rate_pcm_port_0:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.write.requests.rate_compute:
+      network.outgoing.packets.rate_pcm_port_1:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      endpoint_compute:
-        type: tosca.capabilities.Endpoint.Admin
+      feature_pcm_port_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_pcm_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes_server_pcm:
+        type: org.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_pcm_port_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_pcm_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_pcm_port_0:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_pcm_port_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      endpoint_server_pcm:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.rate_server_pcm:
+        type: org.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.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_server_pcm:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes.rate_server_pcm:
+        type: org.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.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_server_pcm:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu.delta_server_pcm:
+        type: org.openecomp.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_pcm_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_pcm_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_server_pcm:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_pcm_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.capacity_server_pcm:
+        type: org.openecomp.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_pcm_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      instance_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.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_server_pcm:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_pcm_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes.rate_server_pcm:
+        type: org.openecomp.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_pcm_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.abstract.nodes.compute:
+    derived_from: org.openecomp.resource.abstract.nodes.VFC
+    properties:
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      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
+      compute_compute_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      compute_compute_config_drive:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: boolean
+    attributes:
+      compute_instance_name:
+        type: string
+        status: SUPPORTED
+    requirements:
+    - dependency_compute:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_compute:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    capabilities:
+      disk.device.usage_compute:
+        type: org.openecomp.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_compute:
+        type: org.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.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_compute:
+        type: org.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_compute:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_compute:
+        type: org.openecomp.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.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_compute:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes.rate_compute:
+        type: org.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_compute:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_compute:
+        type: org.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.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_compute:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory.usage_compute:
+        type: org.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_compute:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_compute:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes_compute:
+        type: org.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.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_compute:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests_compute:
+        type: org.openecomp.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.openecomp.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_compute:
+        type: org.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_compute:
+        type: org.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_compute:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.vfc.nodes.heat.oam_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      port_pcm_port_0_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      availabilityzone_name:
+        type: string
+        description: availabilityzone name
+        required: true
+        status: SUPPORTED
+      port_pcm_port_0_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      oam_server_name:
+        type: string
+        description: oam server name
+        required: true
+        status: SUPPORTED
+      port_pcm_port_0_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_pcm_port_0_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pcm_port_0_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      oam_image_name:
+        type: string
+        description: oam image name
+        required: true
+        status: SUPPORTED
+      cps_net_mask:
+        type: string
+        description: CPS network mask
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_pcm_port_0_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      oam_net_name:
+        type: string
+        description: OAM network name
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pcm_port_0_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      oam_net_gw:
+        type: string
+        description: CPS network gateway
+        required: true
+        status: SUPPORTED
+      oam_flavor_name:
+        type: string
+        description: flavor name of PCRF CM instance
+        required: true
+        status: SUPPORTED
+      security_group_name:
+        type: string
+        description: the name of security group
+        required: true
+        status: SUPPORTED
+      cps_net_ip:
+        type: string
+        description: CPS network ip
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      pcm_vol:
+        type: string
+        description: CPS Cluman Cinder Volume
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_pcm_port_0_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      cps_net_name:
+        type: string
+        description: CPS network name
+        required: true
+        status: SUPPORTED
+      oam_net_ip:
+        type: string
+        description: OAM network ip
+        required: true
+        status: SUPPORTED
+      oam_net_mask:
+        type: string
+        description: CPS network mask
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+    attributes:
+      server_oam_id:
+        type: string
+        description: the oam nova service id
+        status: SUPPORTED
+    requirements:
+    - dependency_server_oam:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_server_oam:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_pcm_port_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pcm_port_1:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_pcm_port_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pcm_port_0:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      cpu_server_oam:
+        type: org.openecomp.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_pcm_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets.rate_pcm_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_pcm_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory_server_oam:
+        type: org.openecomp.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_pcm_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.requests_server_oam:
+        type: org.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_server_oam:
+        type: org.openecomp.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_server_oam:
+        type: org.openecomp.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_server_oam:
+        type: org.openecomp.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_server_oam:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.usage_server_oam:
+        type: org.openecomp.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_server_oam:
+        type: org.openecomp.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_server_oam:
+        type: org.openecomp.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_pcm_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.ephemeral.size_server_oam:
+        type: org.openecomp.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_server_oam:
+        type: org.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_compute:
+      disk.root.size_server_oam:
         type: org.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_compute:
-        type: tosca.capabilities.Container
+      memory.usage_server_oam:
+        type: org.openecomp.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_pcm_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_pcm_port_0:
+        type: tosca.capabilities.network.Bindable
         valid_source_types:
-        - tosca.nodes.SoftwareComponent
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      binding_pcm_port_1:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      disk.read.bytes_server_oam:
+        type: org.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_compute:
+      os_server_oam:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.requests_server_oam:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_server_oam:
+        type: org.openecomp.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_pcm_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_pcm_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pcm_port_1:
         type: tosca.capabilities.Node
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.write.bytes_compute:
+      network.outgoing.bytes_pcm_port_0:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      cpu_compute:
+      feature_pcm_port_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_pcm_port_1:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.write.bytes.rate_compute:
+      attachment_pcm_port_0:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_pcm_port_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes_server_oam:
         type: org.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_compute:
+      endpoint_server_oam:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.rate_server_oam:
+        type: org.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_server_oam:
+        type: org.openecomp.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_server_oam:
+        type: org.openecomp.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_server_oam:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_server_oam:
+        type: org.openecomp.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_server_oam:
+        type: org.openecomp.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_server_oam:
+        type: org.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_server_oam:
         type: tosca.capabilities.Scalable
         occurrences:
         - 1
         - UNBOUNDED
-      disk.device.read.requests_compute:
+      disk.device.read.bytes.rate_server_oam:
         type: org.openecomp.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_compute:
+      cpu_util_server_oam:
         type: org.openecomp.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_compute:
+      cpu.delta_server_oam:
         type: org.openecomp.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_compute:
+      host_server_oam:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.write.bytes.rate_server_oam:
         type: org.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_compute:
+      network.outgoing.bytes.rate_pcm_port_1:
         type: org.openecomp.capabilities.metric.Ceilometer
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
         - UNBOUNDED
-      binding_compute:
+      network.incoming.packets_pcm_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_server_oam:
         type: tosca.capabilities.network.Bindable
         occurrences:
         - 1
         - UNBOUNDED
+      network.outgoing.bytes.rate_pcm_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.capacity_server_oam:
+        type: org.openecomp.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_pcm_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.latency_server_oam:
+        type: org.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_server_oam:
+        type: org.openecomp.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_server_oam:
+        type: org.openecomp.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_server_oam:
+        type: org.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_server_oam:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_pcm_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes.rate_server_oam:
+        type: org.openecomp.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_pcm_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+  org.openecomp.resource.vfc.nodes.heat.compute:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      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
+      compute_compute_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      compute_compute_config_drive:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: boolean
+    attributes:
+      compute_instance_name:
+        type: string
+        status: SUPPORTED
\ No newline at end of file
index 1ce813d..5868c5c 100644 (file)
@@ -181,29 +181,6 @@ topology_template:
           get_input:
           - pcm_server_names
           - 0
-      requirements:
-      - dependency_pcm_port_1:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_port_1:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
-      - dependency_server_pcm:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_server_pcm:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
-      - dependency_pcm_port_0:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_port_0:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
     server_oam_001:
       type: org.openecomp.resource.abstract.nodes.heat.oam_server
       directives:
@@ -265,29 +242,6 @@ topology_template:
           get_input: oam_net_mask
         oam_net_name:
           get_input: oam_net_name
-      requirements:
-      - dependency_server_oam:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_server_oam:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
-      - dependency_pcm_port_1:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_port_1:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
-      - dependency_pcm_port_0:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_port_0:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
     server_pcm_001:
       type: org.openecomp.resource.abstract.nodes.heat.pcm_server
       directives:
@@ -349,29 +303,6 @@ topology_template:
           get_input: oam_net_mask
         oam_net_name:
           get_input: oam_net_name
-      requirements:
-      - dependency_pcm_port_1:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_port_1:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
-      - dependency_server_pcm:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_server_pcm:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
-      - dependency_pcm_port_0:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_port_0:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
     packet_mirror_network:
       type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
       properties:
index 16dda32..e48040b 100644 (file)
@@ -564,6 +564,565 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
+  org.openecomp.resource.vfc.nodes.heat.pcm_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      port_pcm_port_0_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      availabilityzone_name:
+        type: string
+        description: availabilityzone name
+        required: true
+        status: SUPPORTED
+      port_pcm_port_0_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      pcm_image_name:
+        type: string
+        description: PCRF CM image name
+        required: true
+        status: SUPPORTED
+      port_pcm_port_0_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_pcm_port_0_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pcm_port_0_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      pcm_server_name:
+        type: string
+        description: PCRF CM server name
+        required: true
+        status: SUPPORTED
+      cps_net_mask:
+        type: string
+        description: CPS network mask
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_pcm_port_0_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      oam_net_name:
+        type: string
+        description: OAM network name
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pcm_port_0_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      oam_net_gw:
+        type: string
+        description: CPS network gateway
+        required: true
+        status: SUPPORTED
+      security_group_name:
+        type: string
+        description: the name of security group
+        required: true
+        status: SUPPORTED
+      cps_net_ip:
+        type: string
+        description: CPS network ip
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      pcm_flavor_name:
+        type: string
+        description: flavor name of PCRF CM instance
+        required: true
+        status: SUPPORTED
+      pcm_vol:
+        type: string
+        description: CPS Cluman Cinder Volume
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_pcm_port_0_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      cps_net_name:
+        type: string
+        description: CPS network name
+        required: true
+        status: SUPPORTED
+      oam_net_ip:
+        type: string
+        description: OAM network ip
+        required: true
+        status: SUPPORTED
+      oam_net_mask:
+        type: string
+        description: CPS network mask
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+    attributes:
+      server_pcm_id:
+        type: string
+        description: the pcm nova service id
+        status: SUPPORTED
+    requirements:
+    - dependency_pcm_port_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pcm_port_1:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_server_pcm:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_server_pcm:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_pcm_port_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pcm_port_0:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      network.incoming.packets.rate_pcm_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_server_pcm:
+        type: org.openecomp.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_pcm_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_pcm_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_pcm_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.iops_server_pcm:
+        type: org.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.usage_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_pcm_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_pcm_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_pcm_port_0:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      binding_pcm_port_1:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      memory.usage_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_server_pcm:
+        type: org.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_server_pcm:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes_server_pcm:
+        type: org.openecomp.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_pcm_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_pcm_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pcm_port_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_pcm_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes_server_pcm:
+        type: org.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_pcm_port_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_pcm_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_pcm_port_0:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_pcm_port_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      endpoint_server_pcm:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.rate_server_pcm:
+        type: org.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.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_server_pcm:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes.rate_server_pcm:
+        type: org.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.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_server_pcm:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu.delta_server_pcm:
+        type: org.openecomp.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_pcm_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_pcm_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_server_pcm:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_pcm_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.capacity_server_pcm:
+        type: org.openecomp.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_pcm_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      instance_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.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_server_pcm:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_pcm_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes.rate_server_pcm:
+        type: org.openecomp.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_pcm_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
   org.openecomp.resource.abstract.nodes.compute:
     derived_from: org.openecomp.resource.abstract.nodes.VFC
     properties:
@@ -979,3 +1538,82 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
+  org.openecomp.resource.vfc.nodes.heat.compute:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      compute_compute_user_data_format:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_compute_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      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_compute_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      compute_compute_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_compute_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_compute_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_compute_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      compute_compute_metadata:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_compute_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_compute_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_compute_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_compute_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
\ No newline at end of file
index 17fb056..0f63982 100644 (file)
@@ -181,29 +181,6 @@ topology_template:
           get_input: oam_net_mask
         oam_net_name:
           get_input: oam_net_name
-      requirements:
-      - dependency_pcm_port_1:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_port_1:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
-      - dependency_server_pcm:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_server_pcm:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
-      - dependency_pcm_port_0:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_port_0:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
     packet_mirror_network:
       type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
       properties:
index 90babdd..6bfb11c 100644 (file)
@@ -181,29 +181,6 @@ topology_template:
           get_input: oam_net_mask
         oam_net_name:
           get_input: oam_net_name
-      requirements:
-      - dependency_server_pcm:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_server_pcm:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
-      - dependency_pcm_1port_0:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_1port_0:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
-      - dependency_pcm_2port_1:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_2port_1:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
     packet_mirror_network:
       type: org.openecomp.resource.vl.nodes.heat.network.neutron.Net
       properties:
index 181027f..4035ba8 100644 (file)
@@ -438,6 +438,103 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
+  org.openecomp.resource.vfc.nodes.heat.pcm_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      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
+      compute_pcm_server_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pcm_port_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      port_pcm_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pcm_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_pcm_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      compute_pcm_server_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pcm_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pcm_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_pcm_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      compute_pcm_server_user_data_format:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pcm_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      compute_pcm_server_config_drive:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: boolean
+      port_pcm_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pcm_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pcm_port_security_groups:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
   org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1:
     derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
     properties:
@@ -1480,3 +1577,40 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
+  org.openecomp.resource.vfc.nodes.heat.compute:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      compute_compute_user_data_format:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      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
+      compute_compute_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      compute_compute_config_drive:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: boolean
\ No newline at end of file
index fb024af..a53c1b2 100644 (file)
@@ -5,6 +5,103 @@ imports:
 - openecomp_heat_index:
     file: openecomp-heat/_index.yml
 node_types:
+  org.openecomp.resource.vfc.nodes.heat.pd_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      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
+      compute_pd_server_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      compute_pd_server_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pcm_port_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      port_pcm_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pcm_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_pcm_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_pcm_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pcm_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_pcm_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pcm_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_pcm_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pcm_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      compute_pd_server_config_drive:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: boolean
+      compute_pd_server_user_data_format:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pcm_port_security_groups:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
   org.openecomp.resource.abstract.nodes.pd_server:
     derived_from: org.openecomp.resource.abstract.nodes.VFC
     properties:
@@ -871,6 +968,103 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
+  org.openecomp.resource.vfc.nodes.heat.pcm_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      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
+      compute_pcm_server_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pcm_port_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      port_pcm_port_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pcm_port_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_pcm_port_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      compute_pcm_server_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pcm_port_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_pcm_port_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_pcm_port_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      compute_pcm_server_user_data_format:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_image_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pcm_port_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      compute_pcm_server_config_drive:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: boolean
+      port_pcm_port_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pcm_port_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pcm_port_security_groups:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
   org.openecomp.resource.abstract.nodes.heat.nested-pcm_v0.1:
     derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute
     properties:
@@ -1632,4 +1826,4 @@ node_types:
         type: tosca.capabilities.OperatingSystem
         occurrences:
         - 1
-        - UNBOUNDED
+        - UNBOUNDED
\ No newline at end of file
index c1c907f..65531c3 100644 (file)
@@ -1123,6 +1123,565 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
+  org.openecomp.resource.vfc.nodes.heat.pcm_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      port_pcm_port_0_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      availabilityzone_name:
+        type: string
+        description: availabilityzone name
+        required: true
+        status: SUPPORTED
+      port_pcm_port_0_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      pcm_image_name:
+        type: string
+        description: PCRF CM image name
+        required: true
+        status: SUPPORTED
+      port_pcm_port_0_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_pcm_port_0_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pcm_port_0_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      pcm_server_name:
+        type: string
+        description: PCRF CM server name
+        required: true
+        status: SUPPORTED
+      cps_net_mask:
+        type: string
+        description: CPS network mask
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_pcm_port_0_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      oam_net_name:
+        type: string
+        description: OAM network name
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pcm_port_0_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      oam_net_gw:
+        type: string
+        description: CPS network gateway
+        required: true
+        status: SUPPORTED
+      security_group_name:
+        type: string
+        description: the name of security group
+        required: true
+        status: SUPPORTED
+      cps_net_ip:
+        type: string
+        description: CPS network ip
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      pcm_flavor_name:
+        type: string
+        description: flavor name of PCRF CM instance
+        required: true
+        status: SUPPORTED
+      pcm_vol:
+        type: string
+        description: CPS Cluman Cinder Volume
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_pcm_port_0_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      cps_net_name:
+        type: string
+        description: CPS network name
+        required: true
+        status: SUPPORTED
+      oam_net_ip:
+        type: string
+        description: OAM network ip
+        required: true
+        status: SUPPORTED
+      oam_net_mask:
+        type: string
+        description: CPS network mask
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+    attributes:
+      server_pcm_id:
+        type: string
+        description: the pcm nova service id
+        status: SUPPORTED
+    requirements:
+    - dependency_pcm_port_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pcm_port_1:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_server_pcm:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_server_pcm:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_pcm_port_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pcm_port_0:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      network.incoming.packets.rate_pcm_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_server_pcm:
+        type: org.openecomp.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_pcm_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_pcm_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_pcm_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.iops_server_pcm:
+        type: org.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.usage_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_pcm_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_pcm_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_pcm_port_0:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      binding_pcm_port_1:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      memory.usage_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_server_pcm:
+        type: org.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_server_pcm:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes_server_pcm:
+        type: org.openecomp.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_pcm_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_pcm_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pcm_port_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_pcm_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes_server_pcm:
+        type: org.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_pcm_port_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_pcm_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_pcm_port_0:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_pcm_port_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      endpoint_server_pcm:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.rate_server_pcm:
+        type: org.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.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_server_pcm:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes.rate_server_pcm:
+        type: org.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.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_server_pcm:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu.delta_server_pcm:
+        type: org.openecomp.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_pcm_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_pcm_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_server_pcm:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_pcm_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.capacity_server_pcm:
+        type: org.openecomp.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_pcm_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      instance_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.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_server_pcm:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_pcm_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes.rate_server_pcm:
+        type: org.openecomp.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_pcm_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
   org.openecomp.resource.abstract.nodes.heat.pcm_server_1:
     derived_from: org.openecomp.resource.abstract.nodes.VFC
     properties:
@@ -1681,4 +2240,4 @@ node_types:
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
-        - UNBOUNDED
+        - UNBOUNDED
\ No newline at end of file
index 6736c9c..15ea89d 100644 (file)
@@ -91,29 +91,6 @@ topology_template:
           get_input:
           - pcm_server_names
           - 0
-      requirements:
-      - dependency_pcm_port_1:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_port_1:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
-      - dependency_server_pcm:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_server_pcm:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
-      - dependency_pcm_port_0:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_port_0:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
     server_pcm_001:
       type: org.openecomp.resource.abstract.nodes.heat.pcm_server_1
       directives:
@@ -151,29 +128,6 @@ topology_template:
           get_input:
           - pcm_server_names
           - 0
-      requirements:
-      - dependency_pcm_port_1:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_port_1:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
-      - dependency_server_pcm:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_server_pcm:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
-      - dependency_pcm_port_0:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_port_0:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
     server_pcm_003:
       type: org.openecomp.resource.abstract.nodes.heat.pcm_server_2
       directives:
@@ -211,29 +165,6 @@ topology_template:
           get_input:
           - pcm_server_names
           - 0
-      requirements:
-      - dependency_pcm_port_1:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_port_1:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
-      - dependency_server_pcm:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_server_pcm:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
-      - dependency_pcm_port_0:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_port_0:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
     compute_port_0:
       type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
       properties:
index c1c907f..65531c3 100644 (file)
@@ -1123,6 +1123,565 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
+  org.openecomp.resource.vfc.nodes.heat.pcm_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      port_pcm_port_0_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      availabilityzone_name:
+        type: string
+        description: availabilityzone name
+        required: true
+        status: SUPPORTED
+      port_pcm_port_0_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      pcm_image_name:
+        type: string
+        description: PCRF CM image name
+        required: true
+        status: SUPPORTED
+      port_pcm_port_0_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_pcm_port_0_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pcm_port_0_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      pcm_server_name:
+        type: string
+        description: PCRF CM server name
+        required: true
+        status: SUPPORTED
+      cps_net_mask:
+        type: string
+        description: CPS network mask
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_pcm_port_0_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      oam_net_name:
+        type: string
+        description: OAM network name
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_pcm_port_0_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      oam_net_gw:
+        type: string
+        description: CPS network gateway
+        required: true
+        status: SUPPORTED
+      security_group_name:
+        type: string
+        description: the name of security group
+        required: true
+        status: SUPPORTED
+      cps_net_ip:
+        type: string
+        description: CPS network ip
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      pcm_flavor_name:
+        type: string
+        description: flavor name of PCRF CM instance
+        required: true
+        status: SUPPORTED
+      pcm_vol:
+        type: string
+        description: CPS Cluman Cinder Volume
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_pcm_port_0_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      cps_net_name:
+        type: string
+        description: CPS network name
+        required: true
+        status: SUPPORTED
+      oam_net_ip:
+        type: string
+        description: OAM network ip
+        required: true
+        status: SUPPORTED
+      oam_net_mask:
+        type: string
+        description: CPS network mask
+        required: true
+        status: SUPPORTED
+      port_pcm_port_1_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+    attributes:
+      server_pcm_id:
+        type: string
+        description: the pcm nova service id
+        status: SUPPORTED
+    requirements:
+    - dependency_pcm_port_1:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pcm_port_1:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - dependency_server_pcm:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - local_storage_server_pcm:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - dependency_pcm_port_0:
+        capability: tosca.capabilities.Node
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.DependsOn
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pcm_port_0:
+        capability: tosca.capabilities.network.Linkable
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      network.incoming.packets.rate_pcm_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu_server_pcm:
+        type: org.openecomp.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_pcm_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outpoing.packets_pcm_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      memory_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_pcm_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.iops_server_pcm:
+        type: org.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.usage_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_pcm_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes_pcm_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_pcm_port_0:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      binding_pcm_port_1:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      memory.usage_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.capacity_server_pcm:
+        type: org.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_server_pcm:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.read.bytes_server_pcm:
+        type: org.openecomp.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_pcm_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.packets.rate_pcm_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pcm_port_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_pcm_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes_server_pcm:
+        type: org.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_pcm_port_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes_pcm_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_pcm_port_0:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_pcm_port_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      endpoint_server_pcm:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.requests.rate_server_pcm:
+        type: org.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.iops_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.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_server_pcm:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.read.bytes.rate_server_pcm:
+        type: org.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.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_server_pcm:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      cpu.delta_server_pcm:
+        type: org.openecomp.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_pcm_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.packets_pcm_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_server_pcm:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.outgoing.bytes.rate_pcm_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.device.capacity_server_pcm:
+        type: org.openecomp.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_pcm_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      instance_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.openecomp.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_server_pcm:
+        type: org.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_server_pcm:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      network.incoming.bytes.rate_pcm_port_0:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
+      disk.write.bytes.rate_server_pcm:
+        type: org.openecomp.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_pcm_port_1:
+        type: org.openecomp.capabilities.metric.Ceilometer
+        description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
+        occurrences:
+        - 1
+        - UNBOUNDED
   org.openecomp.resource.abstract.nodes.heat.pcm_server_1:
     derived_from: org.openecomp.resource.abstract.nodes.VFC
     properties:
@@ -1681,4 +2240,4 @@ node_types:
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
-        - UNBOUNDED
+        - UNBOUNDED
\ No newline at end of file
index 2e0c569..2a5f3b7 100644 (file)
@@ -91,29 +91,6 @@ topology_template:
           get_input:
           - pcm_server_names
           - 0
-      requirements:
-      - dependency_pcm_port_1:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_port_1:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
-      - dependency_server_pcm:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_server_pcm:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
-      - dependency_pcm_port_0:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_port_0:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
     server_pcm_001:
       type: org.openecomp.resource.abstract.nodes.heat.pcm_server
       directives:
@@ -151,29 +128,6 @@ topology_template:
           get_input:
           - pcm_server_names
           - 0
-      requirements:
-      - dependency_pcm_port_1:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_port_1:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
-      - dependency_server_pcm:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_server_pcm:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
-      - dependency_pcm_port_0:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_port_0:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
     server_pcm_003:
       type: org.openecomp.resource.abstract.nodes.heat.pcm_server_2
       directives:
@@ -211,29 +165,6 @@ topology_template:
           get_input:
           - pcm_server_names
           - 0
-      requirements:
-      - dependency_pcm_port_1:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_port_1:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
-      - dependency_server_pcm:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_server_pcm:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
-      - dependency_pcm_port_0:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_port_0:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
     compute_port_0:
       type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
       properties:
index beb20a3..6f0bd1e 100644 (file)
@@ -91,29 +91,6 @@ topology_template:
           get_input:
           - pcm_server_names
           - 0
-      requirements:
-      - dependency_pcm_port_1:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_port_1:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
-      - dependency_server_pcm:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_server_pcm:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
-      - dependency_pcm_port_0:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_port_0:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
     server_pcm_001:
       type: org.openecomp.resource.abstract.nodes.heat.pcm_server
       directives:
@@ -151,29 +128,6 @@ topology_template:
           get_input:
           - pcm_server_names
           - 0
-      requirements:
-      - dependency_pcm_port_1:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_port_1:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
-      - dependency_server_pcm:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_server_pcm:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
-      - dependency_pcm_port_0:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_port_0:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
     compute_port_0:
       type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
       properties:
index 1f6dafb..289e675 100644 (file)
@@ -119,18 +119,10 @@ topology_template:
           capability: tosca.capabilities.Node
           node: packet_mirror_network
           relationship: tosca.relationships.DependsOn
-      - dependency_server_pd_02_pd_server:
-          capability: tosca.capabilities.Node
-          node: packet_mirror_network
-          relationship: tosca.relationships.DependsOn
       - link_pd_server_pd01_port:
           capability: tosca.capabilities.network.Linkable
           node: packet_mirror_network
           relationship: tosca.relationships.network.LinksTo
-      - dependency_server_pd_01_pd_server:
-          capability: tosca.capabilities.Node
-          node: packet_mirror_network
-          relationship: tosca.relationships.DependsOn
       - local_storage_pd_server:
           capability: tosca.capabilities.Attachment
           node: pd01_volume
index 81e04e2..7588e02 100644 (file)
@@ -143,10 +143,6 @@ topology_template:
           capability: tosca.capabilities.Node
           node: packet_mirror_network
           relationship: tosca.relationships.DependsOn
-      - dependency_server_pd_01_pd_server:
-          capability: tosca.capabilities.Node
-          node: packet_mirror_network
-          relationship: tosca.relationships.DependsOn
       - link_pd_server_pd01_port:
           capability: tosca.capabilities.network.Linkable
           node: packet_mirror_network
index 210b537..4fd079f 100644 (file)
@@ -154,10 +154,6 @@ topology_template:
           capability: tosca.capabilities.Node
           node: packet_mirror_network
           relationship: tosca.relationships.DependsOn
-      - dependency_server_pd_01_pd_server:
-          capability: tosca.capabilities.Node
-          node: packet_mirror_network
-          relationship: tosca.relationships.DependsOn
       - link_pd_server_pd01_port_0:
           capability: tosca.capabilities.network.Linkable
           node: packet_mirror_network
index b9c5bc8..cfbf2f9 100644 (file)
@@ -450,33 +450,6 @@ topology_template:
         port_pcm_port_0_mac_requirements:
           mac_count_required:
             is_required: false
-      requirements:
-      - dependency_pcm_port_1:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_port_1:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
-      - dependency_server_pcm:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - local_storage_server_pcm:
-          capability: tosca.capabilities.Attachment
-          node: tosca.nodes.BlockStorage
-          relationship: tosca.relationships.AttachesTo
-      - dependency_pcm_port_0:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
-      - link_pcm_port_0:
-          capability: tosca.capabilities.network.Linkable
-          relationship: tosca.relationships.network.LinksTo
-      - dependency_network:
-          capability: tosca.capabilities.Node
-          node: tosca.nodes.Root
-          relationship: tosca.relationships.DependsOn
     abstract_pd_server:
       type: org.openecomp.resource.abstract.nodes.pd_server
       directives:
index abe0e17..18c8253 100644 (file)
@@ -245,10 +245,6 @@ topology_template:
           capability: tosca.capabilities.Node
           node: packet_mirror_network
           relationship: tosca.relationships.DependsOn
-      - dependency_server_pd_01_pd_server:
-          capability: tosca.capabilities.Node
-          node: packet_mirror_network
-          relationship: tosca.relationships.DependsOn
     abstract_ps_server:
       type: org.openecomp.resource.abstract.nodes.ps_server
       directives:
@@ -298,10 +294,6 @@ topology_template:
           capability: tosca.capabilities.Node
           node: packet_mirror_network
           relationship: tosca.relationships.DependsOn
-      - dependency_server_ps_01_ps_server:
-          capability: tosca.capabilities.Node
-          node: packet_mirror_network
-          relationship: tosca.relationships.DependsOn
     abstract_oam_server:
       type: org.openecomp.resource.abstract.nodes.oam_server
       directives:
@@ -350,10 +342,6 @@ topology_template:
           capability: tosca.capabilities.Node
           node: packet_mirror_network
           relationship: tosca.relationships.DependsOn
-      - dependency_server_oam_01_oam_server:
-          capability: tosca.capabilities.Node
-          node: packet_mirror_network
-          relationship: tosca.relationships.DependsOn
     network_policy_server_ps:
       type: org.openecomp.resource.vfc.rules.nodes.heat.network.contrail.NetworkRules
       properties:
index b994e51..92ed531 100644 (file)
@@ -794,3 +794,222 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
+  org.openecomp.resource.vfc.nodes.heat.FSB1:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      port_FSB1_Internal_mac_address:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB_OAM_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB1_Internal_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_FSB1_Internal_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      compute_FSB1_metadata:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_FSB2_Internal2_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB2_Internal1_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB_OAM_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_FSB2_Internal2_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_FSB2_Internal2_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB2_Internal1_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_FSB2_Internal1_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB_OAM_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_FSB1_Internal_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB2_Internal1_mac_address:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB2_Internal1_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_FSB1_Internal_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_FSB1_Internal_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_FSB_OAM_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB_OAM_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_FSB1_Internal_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB2_Internal1_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_FSB2_Internal2_mac_address:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB2_Internal2_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_FSB_OAM_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB2_Internal2_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_FSB_OAM_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      compute_FSB1_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_FSB1_Internal_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      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_FSB_OAM_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_FSB2_Internal2_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_FSB2_Internal2_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_FSB2_Internal1_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_FSB2_Internal2_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB1_Internal_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_FSB2_Internal1_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB2_Internal1_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_FSB_OAM_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      port_FSB2_Internal2_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_FSB2_Internal1_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB1_Internal_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_FSB_OAM_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      compute_FSB1_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
index 78f448c..b6cc642 100644 (file)
@@ -295,4 +295,37 @@ node_types:
         description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer.
         occurrences:
         - 1
-        - UNBOUNDED
\ No newline at end of file
+        - UNBOUNDED
+  org.openecomp.resource.vfc.nodes.heat.FSB1:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      compute_FSB1_metadata:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      compute_FSB1_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      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
+      compute_FSB1_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
index 3061694..4d5301f 100644 (file)
@@ -670,3 +670,176 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
+  org.openecomp.resource.vfc.nodes.heat.FSB1:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      port_FSB1_Internal_mac_address:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB_OAM_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB1_Internal_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_FSB1_Internal_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      compute_FSB1_metadata:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_FSB2_Internal_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_FSB2_Internal_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_FSB2_Internal_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB_OAM_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_FSB2_Internal_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB_OAM_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_FSB1_Internal_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB1_Internal_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_FSB2_Internal_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB1_Internal_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_FSB_OAM_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB_OAM_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_FSB1_Internal_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB_OAM_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB_OAM_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      compute_FSB1_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_FSB1_Internal_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      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_FSB_OAM_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_FSB2_Internal_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_FSB2_Internal_mac_address:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB2_Internal_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_FSB1_Internal_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_FSB_OAM_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      port_FSB2_Internal_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_FSB1_Internal_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_FSB_OAM_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      compute_FSB1_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_FSB2_Internal_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
index 83ade4a..2cc31a0 100644 (file)
@@ -571,3 +571,155 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
+  org.openecomp.resource.vfc.nodes.heat.FSB1:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      port_FSB1_Internal_mac_address:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB1_Internal_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_FSB1_Internal_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      compute_FSB1_metadata:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_FSB2_Internal_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_FSB2_Internal_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_FSB2_Internal_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB2_Internal_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB1_Internal_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB1_Internal_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_FSB2_Internal_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB1_Internal_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_FSB1_Internal_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      compute_FSB1_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_FSB1_Internal_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      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_FSB2_Internal_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_FSB2_Internal_mac_address:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB2_Internal_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_FSB1_Internal_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_FSB2_Internal_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_FSB1_Internal_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      compute_FSB1_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_FSB2_Internal_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+    attributes:
+      FSB1_FSB2_Internal_tenant_id:
+        type: string
+        status: SUPPORTED
+      FSB1_FSB1_Internal_network_id:
+        type: string
+        status: SUPPORTED
+      FSB1_user_data_format:
+        type: string
+        status: SUPPORTED
+      FSB1_accessIPv6:
+        type: string
+        status: SUPPORTED
+      FSB1_addresses:
+        type: map
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.novaServer.network.AddressInfo
+      FSB1_FSB2_Internal_network_id:
+        type: string
+        status: SUPPORTED
+      FSB1_FSB1_Internal_status:
+        type: string
+        status: SUPPORTED
+      FSB1_FSB1_Internal_device_owner:
+        type: string
+        status: SUPPORTED
index a42219e..e10d530 100644 (file)
@@ -694,3 +694,200 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
+  org.openecomp.resource.vfc.nodes.heat.FSB1:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      port_FSB1_Internal_mac_address:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB_OAM_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB1_Internal_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_FSB1_Internal_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      compute_FSB1_metadata:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_FSB2_Internal_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_FSB2_Internal_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_FSB2_Internal_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB_OAM_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_FSB2_Internal_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB_OAM_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_FSB1_Internal_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB1_Internal_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_FSB2_Internal_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB1_Internal_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_FSB_OAM_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB_OAM_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_FSB1_Internal_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB_OAM_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB_OAM_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      compute_FSB1_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_FSB1_Internal_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      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_FSB_OAM_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_FSB2_Internal_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_FSB2_Internal_mac_address:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB2_Internal_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_FSB1_Internal_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_FSB_OAM_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      port_FSB2_Internal_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_FSB1_Internal_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_FSB_OAM_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      compute_FSB1_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_FSB2_Internal_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+    attributes:
+      FSB1_FSB_OAM_status:
+        type: string
+        status: SUPPORTED
+      FSB1_FSB2_Internal_tenant_id:
+        type: string
+        status: SUPPORTED
+      FSB1_FSB1_Internal_network_id:
+        type: string
+        status: SUPPORTED
+      FSB1_accessIPv6:
+        type: string
+        status: SUPPORTED
+      FSB1_addresses:
+        type: map
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.novaServer.network.AddressInfo
+      FSB1_FSB2_Internal_network_id:
+        type: string
+        status: SUPPORTED
+      FSB1_FSB1_Internal_device_owner:
+        type: string
+        status: SUPPORTED
index 7c1d535..d16a04d 100644 (file)
@@ -565,3 +565,149 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
+  org.openecomp.resource.vfc.nodes.heat.FSB1:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      port_FSB1_Internal_mac_address:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB1_Internal_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_FSB1_Internal_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      compute_FSB1_metadata:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: json
+      port_FSB2_Internal_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_FSB2_Internal_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      compute_FSB1_availability_zone:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      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_FSB2_Internal_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_FSB2_Internal_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB2_Internal_mac_address:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB2_Internal_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB2_Internal_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_FSB1_Internal_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB1_Internal_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_FSB1_Internal_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_FSB2_Internal_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_FSB2_Internal_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB1_Internal_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      compute_FSB1_name:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_FSB1_Internal_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_FSB1_Internal_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB2_Internal_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+    attributes:
+      FSB1_FSB2_Internal_tenant_id:
+        type: string
+        status: SUPPORTED
+      FSB1_FSB1_Internal_network_id:
+        type: string
+        status: SUPPORTED
+      FSB1_user_data_format:
+        type: string
+        status: SUPPORTED
+      FSB1_accessIPv6:
+        type: string
+        status: SUPPORTED
+      FSB1_addresses:
+        type: map
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.novaServer.network.AddressInfo
+      FSB1_FSB2_Internal_network_id:
+        type: string
+        status: SUPPORTED
+      FSB1_FSB1_Internal_status:
+        type: string
+        status: SUPPORTED
+      FSB1_FSB1_Internal_device_owner:
+        type: string
+        status: SUPPORTED
index d2ea7e9..e57d35a 100644 (file)
@@ -676,3 +676,182 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
+  org.openecomp.resource.vfc.nodes.heat.FSB1:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      port_FSB1_Internal_mac_address:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB_OAM_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB1_Internal_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_FSB1_Internal_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB2_Internal_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_FSB2_Internal_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_FSB2_Internal_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      vm_flavor_name:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB_OAM_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_FSB2_Internal_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB_OAM_ip_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.IpRequirements
+      port_FSB1_Internal_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB1_Internal_vlan_requirements:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.network.VlanRequirements
+      port_FSB2_Internal_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB1_Internal_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_FSB_OAM_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB_OAM_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_FSB1_Internal_network_role:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB_OAM_subnetpoolid:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB_OAM_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_FSB1_Internal_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      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_FSB_OAM_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_FSB2_Internal_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_FSB2_Internal_mac_address:
+        type: string
+        required: true
+        status: SUPPORTED
+      port_FSB2_Internal_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_FSB1_Internal_order:
+        type: integer
+        required: true
+        status: SUPPORTED
+      port_FSB_OAM_fixed_ips:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.neutron.port.FixedIps
+      port_FSB2_Internal_network:
+        type: list
+        required: true
+        status: SUPPORTED
+        entry_schema:
+          type: string
+      port_FSB1_Internal_mac_requirements:
+        type: org.openecomp.datatypes.network.MacRequirements
+        required: true
+        status: SUPPORTED
+      port_FSB_OAM_exCP_naming:
+        type: org.openecomp.datatypes.Naming
+        required: true
+        status: SUPPORTED
+      port_FSB2_Internal_network_role_tag:
+        type: string
+        required: true
+        status: SUPPORTED
+    attributes:
+      FSB1_FSB_OAM_status:
+        type: string
+        status: SUPPORTED
+      FSB1_FSB2_Internal_tenant_id:
+        type: string
+        status: SUPPORTED
+      FSB1_FSB1_Internal_network_id:
+        type: string
+        status: SUPPORTED
+      FSB1_accessIPv6:
+        type: string
+        status: SUPPORTED
+      FSB1_addresses:
+        type: map
+        status: SUPPORTED
+        entry_schema:
+          type: org.openecomp.datatypes.heat.novaServer.network.AddressInfo
+      FSB1_FSB2_Internal_network_id:
+        type: string
+        status: SUPPORTED
+      FSB1_FSB1_Internal_device_owner:
+        type: string
+        status: SUPPORTED
index a424a5d..7f16b2f 100644 (file)
@@ -329,3 +329,297 @@ node_types:
         occurrences:
         - 1
         - UNBOUNDED
+  org.openecomp.resource.vfc.nodes.heat.pcm_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      availabilityzone_name:
+        type: string
+        description: availabilityzone name
+        required: true
+        status: SUPPORTED
+      oam_net_gw:
+        type: string
+        description: CPS network gateway
+        required: true
+        status: SUPPORTED
+      pcm_image_name:
+        type: string
+        description: PCRF CM image name
+        required: true
+        status: SUPPORTED
+      cps_net_ips:
+        type: string
+        description: CPS network ip
+        required: true
+        status: SUPPORTED
+      security_group_name:
+        type: string
+        description: the name of security group
+        required: true
+        status: SUPPORTED
+      cps_net_ip:
+        type: string
+        description: CPS network ip
+        required: true
+        status: SUPPORTED
+      pcm_volumes:
+        type: string
+        description: CPS Cluman Cinder Volume
+        required: true
+        status: SUPPORTED
+      pcm_flavor_name:
+        type: string
+        description: flavor name of PCRF CM instance
+        required: true
+        status: SUPPORTED
+      pcm_vol:
+        type: string
+        description: CPS Cluman Cinder Volume
+        required: true
+        status: SUPPORTED
+      pcm_server_name:
+        type: string
+        description: PCRF CM server name
+        required: true
+        status: SUPPORTED
+      cps_net_name:
+        type: string
+        description: CPS network name
+        required: true
+        status: SUPPORTED
+      cps_net_mask:
+        type: string
+        description: CPS network mask
+        required: true
+        status: SUPPORTED
+      oam_net_ip:
+        type: string
+        description: OAM network ip
+        required: true
+        status: SUPPORTED
+      oam_net_mask:
+        type: string
+        description: CPS network mask
+        required: true
+        status: SUPPORTED
+      oam_net_name:
+        type: string
+        description: OAM network name
+        required: true
+        status: SUPPORTED
+    attributes:
+      server_pcm_id:
+        type: string
+        description: the pcm nova service id
+        status: SUPPORTED
+    requirements:
+    - link_pcm_port_1:
+        capability: tosca.capabilities.network.Linkable
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - local_storage_server_pcm:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pcm_port_1_server_pcm_005:
+        capability: tosca.capabilities.network.Linkable
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - local_storage_server_pcm_server_pcm_005:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pcm_port_0_server_pcm_005:
+        capability: tosca.capabilities.network.Linkable
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - link_pcm_port_0:
+        capability: tosca.capabilities.network.Linkable
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      endpoint_server_pcm:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_network_server_pcm_005:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      host_server_pcm_server_pcm_005:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_server_pcm_server_pcm_005:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      scalable_server_pcm_server_pcm_005:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      endpoint_server_pcm_server_pcm_005:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_network:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_pcm_port_1_server_pcm_005:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      attachment_pcm_port_0_server_pcm_005:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      link_network_server_pcm_005:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      scalable_server_pcm:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_server_pcm_server_pcm_005:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_network:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_pcm_port_0_server_pcm_005:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      feature_server_pcm_005:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      host_server_pcm:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      os_server_pcm_server_pcm_005:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pcm_port_0_server_pcm_005:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_network_server_pcm_005:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_server_pcm:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_pcm_port_0:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      binding_pcm_port_1:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      link_network:
+        type: tosca.capabilities.network.Linkable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      os_server_pcm:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_server_pcm:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pcm_port_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pcm_port_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pcm_port_1_server_pcm_005:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_pcm_port_0:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_pcm_port_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_pcm_port_1_server_pcm_005:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
index 752628d..217eb69 100644 (file)
@@ -275,6 +275,168 @@ node_types:
         occurrences:
         - 0
         - UNBOUNDED
+  org.openecomp.resource.vfc.nodes.heat.pcm_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      availabilityzone_name:
+        type: string
+        description: availabilityzone name
+        required: true
+        status: SUPPORTED
+      oam_net_gw:
+        type: string
+        description: CPS network gateway
+        required: true
+        status: SUPPORTED
+      pcm_image_name:
+        type: string
+        description: PCRF CM image name
+        required: true
+        status: SUPPORTED
+      security_group_name:
+        type: string
+        description: the name of security group
+        required: true
+        status: SUPPORTED
+      cps_net_ip:
+        type: string
+        description: CPS network ip
+        required: true
+        status: SUPPORTED
+      pcm_flavor_name:
+        type: string
+        description: flavor name of PCRF CM instance
+        required: true
+        status: SUPPORTED
+      pcm_vol:
+        type: string
+        description: CPS Cluman Cinder Volume
+        required: true
+        status: SUPPORTED
+      pcm_server_name:
+        type: string
+        description: PCRF CM server name
+        required: true
+        status: SUPPORTED
+      cps_net_name:
+        type: string
+        description: CPS network name
+        required: true
+        status: SUPPORTED
+      cps_net_mask:
+        type: string
+        description: CPS network mask
+        required: true
+        status: SUPPORTED
+      oam_net_ip:
+        type: string
+        description: OAM network ip
+        required: true
+        status: SUPPORTED
+      oam_net_mask:
+        type: string
+        description: CPS network mask
+        required: true
+        status: SUPPORTED
+      oam_net_name:
+        type: string
+        description: OAM network name
+        required: true
+        status: SUPPORTED
+    attributes:
+      server_pcm_id:
+        type: string
+        description: the pcm nova service id
+        status: SUPPORTED
+    requirements:
+    - link_pcm_port_1:
+        capability: tosca.capabilities.network.Linkable
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - local_storage_server_pcm:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pcm_port_0:
+        capability: tosca.capabilities.network.Linkable
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      endpoint_server_pcm:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      os_server_pcm:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      host_server_pcm:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_server_pcm:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pcm_port_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      scalable_server_pcm:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pcm_port_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_server_pcm:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_pcm_port_0:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_pcm_port_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_pcm_port_0:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      binding_pcm_port_1:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
   org.openecomp.resource.abstract.nodes.heat.oam_server:
     derived_from: org.openecomp.resource.abstract.nodes.VFC
     properties:
@@ -436,4 +598,166 @@ node_types:
         - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
         occurrences:
         - 0
-        - UNBOUNDED
\ No newline at end of file
+        - UNBOUNDED
+  org.openecomp.resource.vfc.nodes.heat.oam_server:
+    derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
+    properties:
+      availabilityzone_name:
+        type: string
+        description: availabilityzone name
+        required: true
+        status: SUPPORTED
+      oam_net_gw:
+        type: string
+        description: CPS network gateway
+        required: true
+        status: SUPPORTED
+      oam_flavor_name:
+        type: string
+        description: flavor name of PCRF CM instance
+        required: true
+        status: SUPPORTED
+      security_group_name:
+        type: string
+        description: the name of security group
+        required: true
+        status: SUPPORTED
+      cps_net_ip:
+        type: string
+        description: CPS network ip
+        required: true
+        status: SUPPORTED
+      oam_server_name:
+        type: string
+        description: oam server name
+        required: true
+        status: SUPPORTED
+      pcm_vol:
+        type: string
+        description: CPS Cluman Cinder Volume
+        required: true
+        status: SUPPORTED
+      oam_image_name:
+        type: string
+        description: oam image name
+        required: true
+        status: SUPPORTED
+      cps_net_name:
+        type: string
+        description: CPS network name
+        required: true
+        status: SUPPORTED
+      cps_net_mask:
+        type: string
+        description: CPS network mask
+        required: true
+        status: SUPPORTED
+      oam_net_ip:
+        type: string
+        description: OAM network ip
+        required: true
+        status: SUPPORTED
+      oam_net_mask:
+        type: string
+        description: CPS network mask
+        required: true
+        status: SUPPORTED
+      oam_net_name:
+        type: string
+        description: OAM network name
+        required: true
+        status: SUPPORTED
+    attributes:
+      server_oam_id:
+        type: string
+        description: the oam nova service id
+        status: SUPPORTED
+    requirements:
+    - local_storage_server_oam:
+        capability: tosca.capabilities.Attachment
+        node: tosca.nodes.BlockStorage
+        relationship: tosca.relationships.AttachesTo
+        occurrences:
+        - 0
+        - UNBOUNDED
+    - link_pcm_port_1:
+        capability: tosca.capabilities.network.Linkable
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    - link_pcm_port_0:
+        capability: tosca.capabilities.network.Linkable
+        node: tosca.nodes.Root
+        relationship: tosca.relationships.network.LinksTo
+        occurrences:
+        - 1
+        - 1
+    capabilities:
+      host_server_oam:
+        type: tosca.capabilities.Container
+        valid_source_types:
+        - tosca.nodes.SoftwareComponent
+        occurrences:
+        - 1
+        - UNBOUNDED
+      endpoint_server_oam:
+        type: tosca.capabilities.Endpoint.Admin
+        occurrences:
+        - 1
+        - UNBOUNDED
+      os_server_oam:
+        type: tosca.capabilities.OperatingSystem
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_server_oam:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pcm_port_1:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      scalable_server_oam:
+        type: tosca.capabilities.Scalable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      feature_pcm_port_0:
+        type: tosca.capabilities.Node
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_server_oam:
+        type: tosca.capabilities.network.Bindable
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_pcm_port_0:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      attachment_pcm_port_1:
+        type: tosca.capabilities.Attachment
+        occurrences:
+        - 1
+        - UNBOUNDED
+      binding_pcm_port_0:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED
+      binding_pcm_port_1:
+        type: tosca.capabilities.network.Bindable
+        valid_source_types:
+        - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface
+        occurrences:
+        - 0
+        - UNBOUNDED