private String modelCustomizationUuid;
 
        private String requestType;
-       private Boolean failIfExists;
-       private Boolean backout;
+       private Boolean failIfExists = false;
+       private Boolean backout = true;
        private Boolean enableBridge;
 
        private Map<String, String> vfModuleParams = new HashMap<>();
 
 
 import javax.annotation.PostConstruct;
 
+import org.apache.commons.lang3.StringUtils;
 import org.onap.sdnc.northbound.client.model.GenericResourceApiParam;
 import org.onap.sdnc.northbound.client.model.GenericResourceApiParamParam;
 import org.onap.sdnc.northbound.client.model.GenericResourceApiVfModuleTopology;
                deleteVolumeGroupRequest.setCloudSiteId(cloudRegion.getLcpCloudRegionId());
                deleteVolumeGroupRequest.setTenantId(cloudRegion.getTenantId());
                deleteVolumeGroupRequest.setVolumeGroupId(volumeGroup.getVolumeGroupId());
-               deleteVolumeGroupRequest.setVolumeGroupStackId(volumeGroup.getHeatStackId());
+               if (!StringUtils.isEmpty(volumeGroup.getHeatStackId())){
+                       deleteVolumeGroupRequest.setVolumeGroupStackId(volumeGroup.getHeatStackId());
+               } else
+               {
+                       deleteVolumeGroupRequest.setVolumeGroupStackId(volumeGroup.getVolumeGroupName());
+               }
                
                deleteVolumeGroupRequest.setSkipAAI(true);
                deleteVolumeGroupRequest.setMsoRequest(createMsoRequest(requestContext, serviceInstance));
 
 import static java.util.Arrays.asList;
 
 import java.io.IOException;
+import java.io.UnsupportedEncodingException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 
 import javax.annotation.PostConstruct;
 
+import org.apache.commons.lang3.StringUtils;
 import org.onap.sdnc.northbound.client.model.GenericResourceApiParam;
 import org.onap.sdnc.northbound.client.model.GenericResourceApiParamParam;
 import org.onap.sdnc.northbound.client.model.GenericResourceApiSubInterfaceNetworkData;
                deleteVfModuleRequest.setTenantId(cloudRegion.getTenantId());
                deleteVfModuleRequest.setVnfId(genericVnf.getVnfId());
                deleteVfModuleRequest.setVfModuleId(vfModule.getVfModuleId());
-               deleteVfModuleRequest.setVfModuleStackId(vfModule.getHeatStackId());//DoDVfMod_heatStackId
-               deleteVfModuleRequest.setSkipAAI(true);                 
-               String messageId = vnfAdapterObjectMapperUtils.getRandomUuid();
-               deleteVfModuleRequest.setMessageId(messageId);          
-               deleteVfModuleRequest.setNotificationUrl(vnfAdapterObjectMapperUtils.createCallbackUrl("VNFAResponse", messageId));
+               if (!StringUtils.isEmpty(vfModule.getHeatStackId())){
+                       deleteVfModuleRequest.setVfModuleStackId(vfModule.getHeatStackId());//DoDVfMod_heatStackId
+               } else
+               {
+                       deleteVfModuleRequest.setVfModuleStackId(vfModule.getVfModuleName());
+               }
+               
+               deleteVfModuleRequest.setSkipAAI(true);
+               setIdAndUrl(deleteVfModuleRequest);
                MsoRequest msoRequest = buildMsoRequest(requestContext, serviceInstance);       
                deleteVfModuleRequest.setMsoRequest(msoRequest);
                return deleteVfModuleRequest;
        }
        
+       protected void setIdAndUrl(DeleteVfModuleRequest deleteVfModuleRequest) throws UnsupportedEncodingException{
+               String messageId = vnfAdapterObjectMapperUtils.getRandomUuid();
+               deleteVfModuleRequest.setMessageId(messageId);          
+               deleteVfModuleRequest.setNotificationUrl(vnfAdapterObjectMapperUtils.createCallbackUrl("VNFAResponse", messageId));
+       }
+       
        private String convertToString(Object obj) {
                String json;
                try {
 
        }
        
        @Test
-       public void test_deleteVolumeGroupRequestMapper() throws Exception {
+       public void test_deleteVolumeGroupHeatIdRequestMapper() throws Exception{
+               this.test_deleteVolumeGroupRequestMapper("heatStackId");
+       }
+
+       @Test
+       public void test_deleteVolumeGroupNoHeatIdRequestMapper() throws Exception{
+               this.test_deleteVolumeGroupRequestMapper(null);
+       }
+       
+       private void test_deleteVolumeGroupRequestMapper(String heatStackId) throws Exception {
                DeleteVolumeGroupRequest expectedDeleteVolumeGroupRequest = new DeleteVolumeGroupRequest();
                
                CloudRegion cloudRegion = new CloudRegion();
                volumeGroup.setVolumeGroupId("volumeGroupId");
                expectedDeleteVolumeGroupRequest.setVolumeGroupId(volumeGroup.getVolumeGroupId());
                
-               volumeGroup.setHeatStackId("heatStackId");
-               expectedDeleteVolumeGroupRequest.setVolumeGroupStackId(volumeGroup.getHeatStackId());
+               if (heatStackId != null){
+                       volumeGroup.setHeatStackId("heatStackId");
+                       expectedDeleteVolumeGroupRequest.setVolumeGroupStackId(volumeGroup.getHeatStackId());
+               } else {
+                       volumeGroup.setVolumeGroupName("volumeGroupName");
+                       expectedDeleteVolumeGroupRequest.setVolumeGroupStackId(volumeGroup.getVolumeGroupName());
+               }
                
                expectedDeleteVolumeGroupRequest.setSkipAAI(true);
                
                
                assertThat(actualDeleteVolumeGroupRequest, sameBeanAs(expectedDeleteVolumeGroupRequest));
        }
-
+       
        @Test
        @Ignore
        public void test_createVolumeGroupParams() throws Exception {
 
                                jsonToCompare,
                                DeleteVfModuleRequest.class);
 
-               assertThat(vfModuleVNFAdapterRequest, sameBeanAs(reqMapper1).ignoring("messageId").ignoring("notificationUrl"));
+               assertThat(vfModuleVNFAdapterRequest, sameBeanAs(reqMapper1).ignoring("messageId").ignoring("notificationUrl").ignoring("vfModuleStackId"));
        }
        
        @Test
 
 
 package org.onap.so.client.adapter.vnf.mapper;
 
+import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
 import static org.hamcrest.CoreMatchers.equalTo;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.doNothing;
 
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Map;
 
+import org.junit.Before;
 import org.junit.Test;
+import org.mockito.MockitoAnnotations;
+import org.mockito.Spy;
+import org.onap.so.adapters.vnfrest.DeleteVfModuleRequest;
+import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion;
+import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
+import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
+import org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule;
+import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestContext;
+import org.onap.so.entity.MsoRequest;
 
-public class VnfAdapterVfModuleObjectMapperTest{
+public class VnfAdapterVfModuleObjectMapperTest {
 
+       @Spy
        private VnfAdapterVfModuleObjectMapper mapper = new VnfAdapterVfModuleObjectMapper();
+
+       @Before
+       public void before() {
+               MockitoAnnotations.initMocks(this);
+       }
        
        @Test
        public void createVnfcSubInterfaceKeyTest() {
                
        }
        
+       @Test
+       public void test_deleteVfModuleNoHeatIdRequestMapper() throws Exception {
+               DeleteVfModuleRequest expectedDeleteVfModuleRequest = new DeleteVfModuleRequest();
+               
+               CloudRegion cloudRegion = new CloudRegion();
+               cloudRegion.setLcpCloudRegionId("lcpCloudRegionId");
+               expectedDeleteVfModuleRequest.setCloudSiteId(cloudRegion.getLcpCloudRegionId());
+               
+               cloudRegion.setTenantId("tenantId");
+               expectedDeleteVfModuleRequest.setTenantId(cloudRegion.getTenantId());
+               
+               GenericVnf genericVnf = new GenericVnf();
+               VfModule vfModule = new VfModule();
+               vfModule.setHeatStackId("heatStackId");
+               expectedDeleteVfModuleRequest.setVfModuleStackId("heatStackId");
+               expectedDeleteVfModuleRequest.setSkipAAI(true);
+               
+               MsoRequest msoRequest = new MsoRequest();
+               RequestContext requestContext = new RequestContext();
+               requestContext.setMsoRequestId("msoRequestId");
+               msoRequest.setRequestId(requestContext.getMsoRequestId());
+               ServiceInstance serviceInstance = new ServiceInstance();
+               serviceInstance.setServiceInstanceId("serviceInstanceId");
+               msoRequest.setServiceInstanceId(serviceInstance.getServiceInstanceId());
+               expectedDeleteVfModuleRequest.setMsoRequest(msoRequest);
+               
+               String messageId = "messageId";
+               String endpoint = "endpoint";
+               doNothing().when(mapper).setIdAndUrl(any());
+               expectedDeleteVfModuleRequest.setMessageId(messageId);
+               expectedDeleteVfModuleRequest.setNotificationUrl(endpoint + "/VNFAResponse/" + messageId);
+               
+               DeleteVfModuleRequest actualDeleteVfModuleRequest = mapper.deleteVfModuleRequestMapper(requestContext, cloudRegion, 
+                               serviceInstance, genericVnf, vfModule);
+               
+               assertThat(actualDeleteVfModuleRequest, sameBeanAs(expectedDeleteVfModuleRequest).ignoring("messageId").ignoring("notificationUrl"));
+       }
+       
 }
 
 import org.onap.so.apihandlerinfra.exceptions.VfModuleNotFoundException;
 import org.onap.so.apihandlerinfra.logging.ErrorLoggerInfo;
 import org.onap.so.db.catalog.beans.NetworkResource;
+import org.onap.so.db.catalog.beans.NetworkResourceCustomization;
 import org.onap.so.db.catalog.beans.Recipe;
 import org.onap.so.db.catalog.beans.ServiceRecipe;
 import org.onap.so.db.catalog.beans.VfModule;
                Recipe recipe = null;
 
                if(modelInfo.getModelCustomizationId()!=null){
-            NetworkResource networkResource = catalogDbClient.getNetworkResourceCustomizationByModelCustomizationUUID(modelInfo.getModelCustomizationId()).getNetworkResource();
-                       if(networkResource!=null){
-                               if(modelInfo.getModelVersionId() == null) {
-                                       modelInfo.setModelVersionId(networkResource.getModelUUID());
+            NetworkResourceCustomization networkResourceCustomization = catalogDbClient.getNetworkResourceCustomizationByModelCustomizationUUID(modelInfo.getModelCustomizationId());
+                       if(networkResourceCustomization != null){
+                               NetworkResource networkResource = networkResourceCustomization.getNetworkResource();
+                   if(networkResource!=null){
+                                       if(modelInfo.getModelVersionId() == null) {
+                                               modelInfo.setModelVersionId(networkResource.getModelUUID());
+                                       }
+                                       recipe = catalogDbClient.getFirstNetworkRecipeByModelNameAndAction(networkResource.getModelName(), action.toString());
+                               }else{
+                                       throw new ValidationException("no catalog entry found");
                                }
-                               recipe = catalogDbClient.getFirstNetworkRecipeByModelNameAndAction(networkResource.getModelName(), action.toString());
-                       }else{
-                               throw new ValidationException("no catalog entry found");
+                       }else if(action != Action.deleteInstance){
+                               throw new ValidationException("modelCustomizationId for networkResourceCustomization lookup", true);
                        }
                }else{
                        //ok for version < 3 and action delete
 
                                        if(InstanceDirection.source.equals(relatedInstance.getInstanceDirection()) && relatedInstanceModelInfo.getModelType().equals(ModelType.vnf)) {
                                                isSourceVnfPresent = true;
                                        } else if(InstanceDirection.destination.equals(relatedInstance.getInstanceDirection()) && 
-                                                       (relatedInstanceModelInfo.getModelType().equals(ModelType.vnf) || (relatedInstanceModelInfo.getModelType().equals(ModelType.pnf) && reqVersion == 6))) {
+                                                       (relatedInstanceModelInfo.getModelType().equals(ModelType.vnf) || (relatedInstanceModelInfo.getModelType().equals(ModelType.pnf)))) {
                                                isDestinationVnfPresent = true;
                                        }
                                }
 
 
         stubFor(get(urlMatching(".*/networkResourceCustomization/3bdbb104-476c-483e-9f8b-c095b3d308ac/networkResource"))
                 .willReturn(aResponse().withHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON)
-                        .withBody(getWiremockResponseForCatalogdb("networkResource_Response.json"))
+                               .withBody(getWiremockResponseForCatalogdb("networkResource_Response.json"))
                         .withStatus(HttpStatus.SC_OK)));
 
         stubFor(get(urlMatching(".*/networkRecipe/search/findFirstByModelNameAndAction[?]" +
         ServiceInstancesResponse realResponse = mapper.readValue(response.getBody(), ServiceInstancesResponse.class);
         assertThat(realResponse, sameBeanAs(expectedResponse).ignoring("requestReferences.requestId"));        
     }
+    @Test
+    public void deleteNetworkInstanceNoCustomizationEntry() throws IOException {
+        stubFor(post(urlPathEqualTo("/mso/async/services/WorkflowActionBB"))
+                .willReturn(aResponse().withHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON)
+                        .withBodyFile("Camunda/TestResponse.json").withStatus(org.apache.http.HttpStatus.SC_OK)));
+
+        stubFor(get(urlMatching(".*/networkResourceCustomization/3bdbb104-476c-483e-9f8b-c095b3d308ac"))
+                .willReturn(aResponse().withHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON)
+                        .withStatus(HttpStatus.SC_NOT_FOUND)));
+
+        stubFor(get(urlMatching(".*/networkRecipe/search/findFirstByModelNameAndAction[?]" +
+                "modelName=VNF-API-DEFAULT&action=deleteInstance"))
+                .willReturn(aResponse().withHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON)
+                        .withBody(getWiremockResponseForCatalogdb("networkRecipe_Response.json"))
+                        .withStatus(org.apache.http.HttpStatus.SC_OK)));
+        
+        //expected response
+        ServiceInstancesResponse expectedResponse = new ServiceInstancesResponse();
+        RequestReferences requestReferences = new RequestReferences();
+        requestReferences.setInstanceId("1882939");
+        expectedResponse.setRequestReferences(requestReferences);
+        uri = servInstanceuri + "v7" + "/serviceInstances/f7ce78bb-423b-11e7-93f8-0050569a7969/networks/1710966e-097c-4d63-afda-e0d3bb7015fb";
+        ResponseEntity<String> response = sendRequest(inputStream("/NetworkInstance.json"), uri, HttpMethod.DELETE);
+
+        ObjectMapper mapper = new ObjectMapper();
+        mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+
+        assertEquals(Response.Status.ACCEPTED.getStatusCode(), response.getStatusCode().value());
+        ServiceInstancesResponse realResponse = mapper.readValue(response.getBody(), ServiceInstancesResponse.class);
+        assertThat(realResponse, sameBeanAs(expectedResponse).ignoring("requestReferences.requestId"));        
+    }
+    @Test
+    public void updateNetworkInstanceNoCustomizationEntry() throws IOException {
+       stubFor(get(urlMatching(".*/networkResourceCustomization/3bdbb104-476c-483e-9f8b-c095b3d308ac"))
+                .willReturn(aResponse().withHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON)
+                        .withStatus(HttpStatus.SC_NOT_FOUND)));
+       
+        uri = servInstanceuri + "v7" + "/serviceInstances/f7ce78bb-423b-11e7-93f8-0050569a7969/networks/1710966e-097c-4d63-afda-e0d3bb7015fb";
+        ResponseEntity<String> response = sendRequest(inputStream("/UpdateNetwork.json"), uri, HttpMethod.PUT);
+
+        ObjectMapper mapper = new ObjectMapper();
+        mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+        mapper.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true);
+
+        assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), response.getStatusCode().value());
+        RequestError realResponse = mapper.readValue(response.getBody(), RequestError.class);
+        assertEquals(realResponse.getServiceException().getText(), "No valid modelCustomizationId for networkResourceCustomization lookup is specified");
+    }
 }
 
 {
    "requestDetails":{
       "modelInfo":{
-         "modelType":"network"
+         "modelType":"network",
+         "modelCustomizationId": "3bdbb104-476c-483e-9f8b-c095b3d308ac"
       },
       "requestInfo":{
          "source":"VID",