diff --git a/openecomp-be/lib/openecomp-common-lib/src/main/java/org/openecomp/sdc/common/errors/Messages.java b/openecomp-be/lib/openecomp-common-lib/src/main/java/org/openecomp/sdc/common/errors/Messages.java
index 150783c..2163669 100644
--- a/openecomp-be/lib/openecomp-common-lib/src/main/java/org/openecomp/sdc/common/errors/Messages.java
+++ b/openecomp-be/lib/openecomp-common-lib/src/main/java/org/openecomp/sdc/common/errors/Messages.java
@@ -1,23 +1,20 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
- * ============LICENSE_END=========================================================
  */
 
+
 package org.openecomp.sdc.common.errors;
 
 
@@ -124,10 +121,6 @@
       "Wrong value assigned to a ResourceGroup index_var property (functions are not allowed"
           + " but only strings), Resource ID [%s]"),
   CONTRAIL_2_IN_USE("Contrail 2.x deprecated resource is in use, Resource ID [%s]"),
-  VLAN_SUBINTERFACE_MORE_THAN_ONE_PORT("More than one parent port found, there should be only one parent port for a VLAN sub-interface ID [%s]"),
-  VLAN_SUBINTERFACE_MISSING_TAG_PROPERTY("VLAN Tag property " +
-      "virtual_machine_interface_properties_sub_interface_vlan_tag is missing in VLAN Resource ID [%s]"),
-  VLAN_SUBINTERFACE_MISSING_REFS_PROPERTY("Parent port property virtual_machine_interface_refs is missing in VLAN Resource ID [%s]"),
 
   /* warnings */
   REFERENCED_RESOURCE_NOT_FOUND("Referenced resource - %s not found"),
diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/util/HeatValidationService.java b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/util/HeatValidationService.java
index dbd13ed..e9a265d 100644
--- a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/util/HeatValidationService.java
+++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/util/HeatValidationService.java
@@ -1,5 +1,5 @@
 /*
- * Copyright © 2016-2017 European Support Limited
+ * Copyright © 2016-2018 European Support Limited
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -326,44 +326,40 @@
   }
 
   /**
-   *
+   *  This method verifies whether the propertyValue contains a single parent port
    * @param fileName on which the validation is currently run
-   * @param globalContext gloabl validation context
+   * @param globalContext global validation context
    * @param heatResourceValidationContext heat resource validation context
    * @param propertyValue the value which is examined
    * @return whether the vlan has single parent port
    */
   public static boolean hasSingleParentPort(String fileName, GlobalValidationContext globalContext,
-                                      HeatResourceValidationContext heatResourceValidationContext,
-                                      Object propertyValue) {
-    boolean hasSingleParentPort;
-    if (propertyValue instanceof List && ((List) propertyValue).size() == 1) {
-      final Object listValue = ((List) propertyValue).get(0);
-
-      final Set<String> getParamValues =
-          HeatStructureUtil.getReferencedValuesByFunctionName(fileName, "get_param",
-              listValue, globalContext);
-      hasSingleParentPort = getParamValues.isEmpty() || (getParamValues.size() == 1) &&
-          validateGetParamValueOfType(getParamValues, heatResourceValidationContext,
-              DefinedHeatParameterTypes.STRING.getType());
-    } else {
-      hasSingleParentPort = false;
+                                            HeatResourceValidationContext heatResourceValidationContext,
+                                            Object propertyValue) {
+    final boolean isList = propertyValue instanceof List;
+    if (!isList || ((List) propertyValue).size() != 1) {
+      return false;
     }
-    return hasSingleParentPort;
+
+    final Object listValue = ((List) propertyValue).get(0);
+
+    final Set<String> getParamValues =
+        HeatStructureUtil.getReferencedValuesByFunctionName(fileName, "get_param",
+            listValue, globalContext);
+
+    return getParamValues.isEmpty() || (getParamValues.size() == 1) &&
+        validateGetParamValueOfType(getParamValues, heatResourceValidationContext,
+            DefinedHeatParameterTypes.STRING.getType());
+
   }
 
+
   private static boolean validateGetParamValueOfType(Set<String> values,
                                         HeatResourceValidationContext
-                                            heatResourceValidationContext,String type) {
-    Optional<String> value = values.stream().findAny();
-    boolean isString = false;
-    if (value.isPresent()) {
-      isString =
-          Objects.equals(heatResourceValidationContext.getHeatOrchestrationTemplate
-              ().getParameters().get(value.get()).getType(), type);
-    }
+                                            heatResourceValidationContext, String type) {
 
-    return isString;
+    return values.stream().anyMatch(e -> Objects.equals(
+        heatResourceValidationContext.getHeatOrchestrationTemplate().getParameters().get(e).getType(), type));
   }
 
 }
diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/validators/heatresource/VirtualMachineInterfaceValidator.java b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/validators/heatresource/VirtualMachineInterfaceValidator.java
index b5fa80e..fc817c4 100644
--- a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/validators/heatresource/VirtualMachineInterfaceValidator.java
+++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/validators/heatresource/VirtualMachineInterfaceValidator.java
@@ -21,20 +21,16 @@
 import org.openecomp.core.validation.types.GlobalValidationContext;
 import org.openecomp.sdc.common.togglz.ToggleableFeature;
 import org.openecomp.sdc.datatypes.error.ErrorLevel;
-import org.openecomp.sdc.heat.datatypes.DefinedHeatParameterTypes;
 import org.openecomp.sdc.heat.datatypes.model.Resource;
 import org.openecomp.sdc.heat.services.HeatConstants;
-import org.openecomp.sdc.heat.services.HeatStructureUtil;
 import org.openecomp.sdc.validation.ResourceValidator;
 import org.openecomp.sdc.validation.ValidationContext;
 import org.openecomp.sdc.validation.impl.util.HeatValidationService;
 import org.openecomp.sdc.validation.type.HeatResourceValidationContext;
 
-import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 import java.util.Optional;
-import java.util.Set;
 
 public class VirtualMachineInterfaceValidator implements ResourceValidator {
   private static final ErrorMessageCode ERROR_CODE_VLAN1 = new ErrorMessageCode("VLAN1");
@@ -47,16 +43,57 @@
     if (ToggleableFeature.VLAN_TAGGING.isActive()) {
       HeatResourceValidationContext heatResourceValidationContext =
           (HeatResourceValidationContext) validationContext;
-      Optional<Object> tagPropertyValue = getVlanTagPropertyValue(resourceEntry.getValue());
+      final ValidityStatus status = calculateValidityStatus(resourceEntry.getValue());
 
-      tagPropertyValue
-          .ifPresent(o -> validateHasSingleParentPort(fileName, resourceEntry, globalContext,
-              heatResourceValidationContext));
-      validateHasTwoProperties(fileName, resourceEntry, globalContext);
-
+      switch (status) {
+        case BOTH_PROPERTIES_PRESENT:
+          validateHasSingleParentPort(fileName, resourceEntry, globalContext,
+              heatResourceValidationContext);
+          break;
+        case REFS_PROPERTY_MISSING:
+          globalContext
+              .addMessage(fileName, ErrorLevel.WARNING,
+                  ErrorMessagesFormatBuilder
+                      .getErrorWithParameters(
+                          ERROR_CODE_VLAN2,
+                          Messages.VLAN_SUBINTERFACE_MISSING_REFS_PROPERTY.getErrorMessage(),
+                          resourceEntry.getKey()));
+          break;
+        case VLAN_TAG_PROPERTY_MISSING:
+          globalContext
+              .addMessage(fileName, ErrorLevel.WARNING,
+                  ErrorMessagesFormatBuilder
+                      .getErrorWithParameters(
+                          ERROR_CODE_VLAN2,
+                          Messages.VLAN_SUBINTERFACE_MISSING_TAG_PROPERTY.getErrorMessage(),
+                          resourceEntry.getKey()));
+          validateHasSingleParentPort(fileName, resourceEntry, globalContext,
+              heatResourceValidationContext);
+          break;
+        case BOTH_PROPERTIES_MISSING:
+          // this is a port and not a VLAN, no further validation required
+          break;
+        default :
+          throw new IllegalArgumentException("Received a value for which no handling is " +
+              "available " + status);
+      }
     }
   }
 
+  private ValidityStatus calculateValidityStatus(Resource resource) {
+    Optional<Object> refsPropertyValue = getRefsPropertyValue(resource);
+    Optional<Object> tagPropertyValue = getVlanTagPropertyValue(resource);
+
+    if (refsPropertyValue.isPresent() && tagPropertyValue.isPresent()) {
+      return ValidityStatus.BOTH_PROPERTIES_PRESENT;
+    }
+    if (!refsPropertyValue.isPresent() && !tagPropertyValue.isPresent()) {
+      return ValidityStatus.BOTH_PROPERTIES_MISSING;
+    }
+    return refsPropertyValue.map(o -> ValidityStatus.VLAN_TAG_PROPERTY_MISSING)
+        .orElse(ValidityStatus.REFS_PROPERTY_MISSING);
+  }
+
 
   private void validateHasSingleParentPort(String fileName,
                                            Map.Entry<String, Resource> resourceEntry,
@@ -67,9 +104,9 @@
     if (Objects.isNull(refsPropertyValue)) {
       return;
     }
-    boolean hasSingleParentPort= HeatValidationService.hasSingleParentPort(fileName, globalContext,
+    boolean hasSingleParentPort = HeatValidationService.hasSingleParentPort(fileName, globalContext,
         heatResourceValidationContext,
-            refsPropertyValue);
+        refsPropertyValue);
     if (!hasSingleParentPort) {
       globalContext.addMessage(fileName, ErrorLevel.ERROR, ErrorMessagesFormatBuilder
           .getErrorWithParameters(ERROR_CODE_VLAN1,
@@ -81,37 +118,6 @@
   }
 
 
-  private void validateHasTwoProperties(String fileName, Map.Entry<String, Resource> resourceEntry,
-                                        GlobalValidationContext globalContext) {
-
-    Optional<Object> refsPropertyValue = getRefsPropertyValue(resourceEntry.getValue());
-    Optional<Object> tagPropertyValue = getVlanTagPropertyValue(resourceEntry.getValue());
-
-
-    if (refsPropertyValue.isPresent() && !tagPropertyValue.isPresent()) {
-      globalContext
-          .addMessage(fileName, ErrorLevel.WARNING,
-              ErrorMessagesFormatBuilder
-                  .getErrorWithParameters(
-                      ERROR_CODE_VLAN2,
-                      Messages.VLAN_SUBINTERFACE_MISSING_TAG_PROPERTY.getErrorMessage(),
-                      resourceEntry.getKey())
-          );
-
-    } else if (!refsPropertyValue.isPresent() && tagPropertyValue.isPresent()) {
-      globalContext
-          .addMessage(fileName, ErrorLevel.WARNING,
-              ErrorMessagesFormatBuilder
-                  .getErrorWithParameters(
-                      ERROR_CODE_VLAN2,
-                      Messages.VLAN_SUBINTERFACE_MISSING_REFS_PROPERTY.getErrorMessage(),
-                      resourceEntry.getKey()));
-
-    }
-
-  }
-
-
   private Optional<Object> getVlanTagPropertyValue(Resource resource) {
     Object vmiProperties = resource.getProperties()
         .get(HeatConstants.VMI_PROPERTIES_PROPERTY_NAME);
@@ -130,6 +136,14 @@
   }
 
 
+  private enum ValidityStatus {
+    BOTH_PROPERTIES_MISSING,
+    BOTH_PROPERTIES_PRESENT,
+    REFS_PROPERTY_MISSING,
+    VLAN_TAG_PROPERTY_MISSING
+
+  }
+
   private enum Messages {
     VLAN_SUBINTERFACE_MORE_THAN_ONE_PORT(
         "More than one parent port found, there should be only one parent port for a VLAN sub-interface ID [%s]"),
diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/java/org/openecomp/sdc/validation/impl/validators/heatresource/VirtualMachineInterfaceValidatorTest.java b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/java/org/openecomp/sdc/validation/impl/validators/heatresource/VirtualMachineInterfaceValidatorTest.java
index c82271e..d9b5f68 100644
--- a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/java/org/openecomp/sdc/validation/impl/validators/heatresource/VirtualMachineInterfaceValidatorTest.java
+++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/java/org/openecomp/sdc/validation/impl/validators/heatresource/VirtualMachineInterfaceValidatorTest.java
@@ -1,3 +1,19 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package org.openecomp.sdc.validation.impl.validators.heatresource;
 
 import org.openecomp.core.validation.types.MessageContainer;
@@ -69,7 +85,7 @@
 
 
   @Test
-  public void hasBothPropertiesMissingTagNegative()  {
+  public void hasBothPropertiesNegativeMissingVlanTag()  {
     HeatResourceValidator baseValidator = new HeatResourceValidator();
     VirtualMachineInterfaceValidator resourceValidator = new VirtualMachineInterfaceValidator();
     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(baseValidator,
@@ -89,7 +105,7 @@
   }
 
   @Test
-  public void hasBothPropertiesMissingRefsNegative()  {
+  public void hasBothPropertiesNegativeMissingRefs()  {
     HeatResourceValidator baseValidator = new HeatResourceValidator();
     VirtualMachineInterfaceValidator resourceValidator = new VirtualMachineInterfaceValidator();
     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(baseValidator,
@@ -108,7 +124,7 @@
   }
 
   @Test
-  public void hasBothPropertiesBothMissingPositiveNotVLAN()  {
+  public void hasBothPropertiesBothMissingWhichMeansPositive()  {
     HeatResourceValidator baseValidator = new HeatResourceValidator();
     VirtualMachineInterfaceValidator resourceValidator = new VirtualMachineInterfaceValidator();
     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(baseValidator,
@@ -137,27 +153,6 @@
 
   }
 
-  @Test
-  public void hasSingleParentPortNegativeHasBothPropertiesNegative()  {
-    HeatResourceValidator baseValidator = new HeatResourceValidator();
-    VirtualMachineInterfaceValidator resourceValidator = new VirtualMachineInterfaceValidator();
-    Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(baseValidator,
-        resourceValidator,
-        HeatResourcesTypes.CONTRAIL_V2_VIRTUAL_MACHINE_INTERFACE_RESOURCE_TYPE.getHeatResource(),
-        PATH + "vlan_mixed/negative_test/input");
-
-    Assert.assertNotNull(messages);
-    Assert.assertEquals(messages.size(), 1);
-
-
-    Assert.assertEquals(messages.get("nested.yml").getErrorMessageList().size(), 1);
-        Assert.assertEquals(
-        messages.get("nested.yml").getErrorMessageList().get(0).getMessage(),
-        "WARNING: [VLAN2]: VLAN Tag property " +
-            "virtual_machine_interface_properties_sub_interface_vlan_tag is missing in " +
-            "VLAN Resource ID [template_Vlan_2]");
-
-  }
 
 
 }
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/heat_validator/vlan_resource_validation/vlan_has_two_properties/negative_refs_missing/input/nested.yml b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/heat_validator/vlan_resource_validation/vlan_has_two_properties/negative_refs_missing/input/nested.yml
index 5e838ec..6abf258 100644
--- a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/heat_validator/vlan_resource_validation/vlan_has_two_properties/negative_refs_missing/input/nested.yml
+++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/heat_validator/vlan_resource_validation/vlan_has_two_properties/negative_refs_missing/input/nested.yml
@@ -69,5 +69,4 @@
             }
           ]
         }
-      virtual_network_refs: [{ get_param: net2 }]
 
diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/heat_validator/vlan_resource_validation/vlan_mixed/negative_test/input/MANIFEST.json b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/heat_validator/vlan_resource_validation/vlan_mixed/negative_test/input/MANIFEST.json
deleted file mode 100644
index aca75b5..0000000
--- a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/heat_validator/vlan_resource_validation/vlan_mixed/negative_test/input/MANIFEST.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
-  "name": "vMME_Small",
-  "description": "HOT template to create 2 cinder volume attachment",
-  "version": "2013-05-23",
-  "data": [
-    {
-      "file": "main.yml",
-      "type": "HEAT",
-      "isBase": "true"
-    },
-    {
-      "file": "nested.yml",
-      "type": "HEAT",
-      "isBase": "false"
-    }
-  ]
-}
diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/heat_validator/vlan_resource_validation/vlan_mixed/negative_test/input/main.yml b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/heat_validator/vlan_resource_validation/vlan_mixed/negative_test/input/main.yml
deleted file mode 100644
index 8bdc627..0000000
--- a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/heat_validator/vlan_resource_validation/vlan_mixed/negative_test/input/main.yml
+++ /dev/null
@@ -1,187 +0,0 @@
-heat_template_version: 2013-05-23
-
-description: >
-  Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
-
-parameters:
-  jsa_net_name:
-    type: string
-    description: network name of jsa log network
-  security_group_name:
-    type: comma_delimited_list
-    description: CMAUI1, CMAUI2 server names
-  cmaui_names:
-    type: comma_delimited_list
-    description: CMAUI1, CMAUI2 server names
-  cmaui_image:
-    type: string
-    description: Image for CMAUI server
-  availability_zone_0:
-    type: string
-    label: availabilityzone name
-    description: availabilityzone name
-  cmaui_flavor:
-    type: string
-    description: Flavor for CMAUI server
-  cmaui_oam_ips:
-    type: string
-  oam_sec_group_name:
-    type: string
-  lb_st_interface_type_oam:
-    type: string
-  template_PortTuple_LB1:
-    type: string
-  lb_st_vlan_type_oam:
-    description: dummy
-    type: string
-  mac_address:
-    type: string
-  virtual_ip_address:
-    type: string
-  virtual_ipv6_address:
-    type: string
-  vlan_ids:
-    type: string
-resources:
-  test_net1:
-    type: OS::Neutron::Net
-    properties:
-      name: {get_param: jsa_net_name}
-      shared: True
-  test_net2:
-    type: OS::Neutron::Net
-    properties:
-      name: {get_param: jsa_net_name}
-      shared: True
-
-  server_cmaui_nova:
-    type: OS::Nova::Server
-    properties:
-      name: { get_param: [cmaui_names, 0]}
-      image: { get_param: cmaui_image }
-      availability_zone: { get_param: availability_zone_0 }
-      flavor: { get_param: cmaui_flavor }
-      networks:
-      - port: { get_resource: template_VMInt_OAM_lb_1 }
-      - port: { get_resource: cmaui_port_2 }
-
-  template_VMInt_OAM_lb_1:
-    type: OS::ContrailV2::VirtualMachineInterface
-    properties:
-      virtual_machine_interface_properties:
-        {
-          virtual_machine_interface_properties_service_interface_type: { get_param: lb_st_interface_type_oam },
-        }
-      virtual_network_refs: [{ get_resource: test_net1 }]
-      port_tuple_refs: [{ get_param: template_PortTuple_LB1 }]
-      security_group_refs: [{ get_param: oam_sec_group_name}]
-
-  cmaui_port_2:
-    type: OS::Neutron::Port
-    properties:
-      network: { get_resource: test_net1 }
-      fixed_ips: [{"ip_address": {get_param: [cmaui_oam_ips, 0]}}]
-      security_groups: [{get_param: security_group_name}]
-      replacement_policy: AUTO
-
-  test_Vlan1:
-    type: OS::ContrailV2::VirtualMachineInterface
-    properties:
-      name: vlan
-      virtual_machine_interface_properties:
-        {
-          virtual_machine_interface_properties_sub_interface_vlan_tag: { get_param: lb_st_vlan_type_oam }
-        }
-      virtual_machine_interface_mac_addresses:
-        {
-        virtual_machine_interface_mac_addresses_mac_address: [{ get_param: mac_address }],
-        }
-      virtual_machine_interface_allowed_address_pairs:
-        {
-        virtual_machine_interface_allowed_address_pairs_allowed_address_pair: [
-            {
-              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: active-standby,
-              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: { get_param: mac_address },
-              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
-              {
-                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: virtual_ip_address },
-                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: 32
-              }
-            },
-            {
-              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: active-standby,
-              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: { get_param: mac_address },
-              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
-              {
-                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: virtual_ipv6_address },
-                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: 128
-              }
-            }
-          ]
-        }
-      virtual_network_refs: [{ get_resource: test_net1 }]
-      virtual_machine_interface_refs: [{ get_resource: test_Vlan2 }]
-
-  test_Vlan2:
-    type: OS::ContrailV2::VirtualMachineInterface
-    properties:
-      name: vlan
-      virtual_machine_interface_properties:
-        {
-          virtual_machine_interface_properties_sub_interface_vlan_tag: { get_param: lb_st_vlan_type_oam }
-        }
-      virtual_machine_interface_mac_addresses:
-        {
-        virtual_machine_interface_mac_addresses_mac_address: [{ get_param: mac_address }],
-        }
-      virtual_machine_interface_allowed_address_pairs:
-        {
-        virtual_machine_interface_allowed_address_pairs_allowed_address_pair: [
-            {
-              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: active-standby,
-              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: { get_param: mac_address },
-              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
-              {
-                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: virtual_ip_address },
-                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: 32
-              }
-            },
-            {
-              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: active-standby,
-              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: { get_param: mac_address },
-              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
-              {
-                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: virtual_ipv6_address },
-                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: 128
-              }
-            }
-          ]
-        }
-      virtual_network_refs: [{ get_resource: test_net1 }]
-      virtual_machine_interface_refs: [{ get_resource: template_VMInt_OAM_lb_1 }]
-
-  test_nested:
-    type: nested.yml
-    properties:
-      p1: { get_resource: template_VMInt_OAM_lb_1}
-      p2: { get_resource: cmaui_port_2}
-      net1: { get_resource: test_net1}
-      net2: { get_resource: test_net2}
-
-  test_resourceGroup:
-    type: OS::Heat::ResourceGroup
-    properties:
-      count: 9
-      resource_def:
-        type: nested.yml
-        properties:
-          p1: { get_resource: template_VMInt_OAM_lb_1}
-          p2: { get_resource: cmaui_port_2}
-          net1: { get_resource: test_net1}
-          net2: { get_resource: test_net2}
-
-  test_nested_invalidConnection:
-    type: nested.yml
-    properties:
-      p1: { get_resource: test_Vlan1}
-      p2: { get_resource: server_cmaui_nova}
diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/heat_validator/vlan_resource_validation/vlan_mixed/negative_test/input/nested.yml b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/heat_validator/vlan_resource_validation/vlan_mixed/negative_test/input/nested.yml
deleted file mode 100644
index 29f8c20..0000000
--- a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/heat_validator/vlan_resource_validation/vlan_mixed/negative_test/input/nested.yml
+++ /dev/null
@@ -1,74 +0,0 @@
-heat_template_version: 2013-05-23
-
-description: cmaui server template for vMMSC
-
-parameters:
-  p1:
-    type: string
-  p2:
-    type: string
-  net1:
-    type: string
-  net2:
-    type: string
-  lb_st_vlan_type_oam:
-    description: dummy
-    type: string
-  mac_address:
-    type: string
-  virtual_ip_address:
-    type: string
-  virtual_ipv6_address:
-    type: string
-  vlan_ids:
-    type: string
-  subinterface_name_prefix:
-    type: string
-  subinterface_instance_index:
-    type: number
-resources:
-
-  
-  template_Vlan_2:
-    type: OS::ContrailV2::VirtualMachineInterface
-    properties:
-      name:
-        str_replace:
-          template: $NAME$VLAN
-          params:
-            $NAME: { get_param: subinterface_name_prefix }
-            $VLAN: { get_param: [ vlan_ids, { get_param: subinterface_instance_index } ] }
-      virtual_machine_interface_properties:
-        {
-        }
-      virtual_machine_interface_mac_addresses:
-        {
-        virtual_machine_interface_mac_addresses_mac_address: [{ get_param: mac_address }],
-        }
-      virtual_machine_interface_allowed_address_pairs:
-        {
-        virtual_machine_interface_allowed_address_pairs_allowed_address_pair: [
-            {
-              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: active-standby,
-              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: { get_param: mac_address },
-              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
-              {
-                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: virtual_ip_address },
-                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: 32
-              }
-            },
-            {
-              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: active-standby,
-              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: { get_param: mac_address },
-              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
-              {
-                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: virtual_ipv6_address },
-                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: 128
-              }
-            }
-          ]
-        }
-      virtual_network_refs: [{ get_param: net2 },{ get_param: net1 }]
-      virtual_machine_interface_refs: [{ get_param: p2 }, { get_param: p1 }]
-
- 
diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/heat_validator/vlan_resource_validation/vlan_multiple_parent_ports/negative_test/input/main.yml b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/heat_validator/vlan_resource_validation/vlan_multiple_parent_ports/negative_test/input/main.yml
index 8bdc627..2fc1d16 100644
--- a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/heat_validator/vlan_resource_validation/vlan_multiple_parent_ports/negative_test/input/main.yml
+++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/resources/org/openecomp/validation/validators/heat_validator/vlan_resource_validation/vlan_multiple_parent_ports/negative_test/input/main.yml
@@ -65,7 +65,7 @@
       - port: { get_resource: template_VMInt_OAM_lb_1 }
       - port: { get_resource: cmaui_port_2 }
 
-  template_VMInt_OAM_lb_1:
+
     type: OS::ContrailV2::VirtualMachineInterface
     properties:
       virtual_machine_interface_properties:
@@ -84,82 +84,6 @@
       security_groups: [{get_param: security_group_name}]
       replacement_policy: AUTO
 
-  test_Vlan1:
-    type: OS::ContrailV2::VirtualMachineInterface
-    properties:
-      name: vlan
-      virtual_machine_interface_properties:
-        {
-          virtual_machine_interface_properties_sub_interface_vlan_tag: { get_param: lb_st_vlan_type_oam }
-        }
-      virtual_machine_interface_mac_addresses:
-        {
-        virtual_machine_interface_mac_addresses_mac_address: [{ get_param: mac_address }],
-        }
-      virtual_machine_interface_allowed_address_pairs:
-        {
-        virtual_machine_interface_allowed_address_pairs_allowed_address_pair: [
-            {
-              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: active-standby,
-              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: { get_param: mac_address },
-              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
-              {
-                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: virtual_ip_address },
-                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: 32
-              }
-            },
-            {
-              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: active-standby,
-              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: { get_param: mac_address },
-              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
-              {
-                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: virtual_ipv6_address },
-                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: 128
-              }
-            }
-          ]
-        }
-      virtual_network_refs: [{ get_resource: test_net1 }]
-      virtual_machine_interface_refs: [{ get_resource: test_Vlan2 }]
-
-  test_Vlan2:
-    type: OS::ContrailV2::VirtualMachineInterface
-    properties:
-      name: vlan
-      virtual_machine_interface_properties:
-        {
-          virtual_machine_interface_properties_sub_interface_vlan_tag: { get_param: lb_st_vlan_type_oam }
-        }
-      virtual_machine_interface_mac_addresses:
-        {
-        virtual_machine_interface_mac_addresses_mac_address: [{ get_param: mac_address }],
-        }
-      virtual_machine_interface_allowed_address_pairs:
-        {
-        virtual_machine_interface_allowed_address_pairs_allowed_address_pair: [
-            {
-              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: active-standby,
-              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: { get_param: mac_address },
-              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
-              {
-                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: virtual_ip_address },
-                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: 32
-              }
-            },
-            {
-              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: active-standby,
-              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: { get_param: mac_address },
-              virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
-              {
-                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: virtual_ipv6_address },
-                virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: 128
-              }
-            }
-          ]
-        }
-      virtual_network_refs: [{ get_resource: test_net1 }]
-      virtual_machine_interface_refs: [{ get_resource: template_VMInt_OAM_lb_1 }]
-
   test_nested:
     type: nested.yml
     properties:
