return aaiRC.exists(l3networkUri);
     }
 
+    public boolean existsAAIVfModuleGloballyByName(String vfModuleName) {
+        AAIResourceUri vfModuleUri =
+                AAIUriFactory.createNodesUri(AAIObjectPlurals.VF_MODULE).queryParam("vf-module-name", vfModuleName);
+        return injectionHelper.getAaiClient().exists(vfModuleUri);
+    }
+
+    public boolean existsAAIConfigurationGloballyByName(String configurationName) {
+        AAIResourceUri configUri = AAIUriFactory.createResourceUri(AAIObjectPlurals.CONFIGURATION)
+                .queryParam("configuration-name", configurationName);
+        return injectionHelper.getAaiClient().exists(configUri);
+    }
+
+    public boolean existsAAIVolumeGroupGloballyByName(String volumeGroupName) {
+        AAIResourceUri volumeGroupUri = AAIUriFactory.createNodesUri(AAIObjectPlurals.VOLUME_GROUP)
+                .queryParam("volume-group-name", volumeGroupName);
+        return injectionHelper.getAaiClient().exists(volumeGroupUri);
+    }
+
     public GenericVnfs getAAIVnfsGloballyByName(String vnfName) {
 
         return injectionHelper.getAaiClient()
 
         assertEquals(actual.get().getConfigurationId(), expected.get().getConfiguration().get(0).getConfigurationId());
     }
 
+    @Test
+    public void existsAAIVfModuleGloballyByNameTest() throws Exception {
+        AAIResourceUri expectedUri =
+                AAIUriFactory.createNodesUri(AAIObjectPlurals.VF_MODULE).queryParam("vf-module-name", "testVfModule");
+        bbInputSetupUtils.existsAAIVfModuleGloballyByName("testVfModule");
+        verify(MOCK_aaiResourcesClient, times(1)).exists(expectedUri);
+    }
+
+    @Test
+    public void existsAAIConfigurationGloballyByNameTest() throws Exception {
+        AAIResourceUri expectedUri = AAIUriFactory.createResourceUri(AAIObjectPlurals.CONFIGURATION)
+                .queryParam("configuration-name", "testConfig");
+        bbInputSetupUtils.existsAAIConfigurationGloballyByName("testConfig");
+        verify(MOCK_aaiResourcesClient, times(1)).exists(expectedUri);
+    }
+
+    @Test
+    public void existsAAINetworksGloballyByNameTest() throws Exception {
+        AAIResourceUri expectedUri =
+                AAIUriFactory.createResourceUri(AAIObjectPlurals.L3_NETWORK).queryParam("network-name", "testNetwork");
+        bbInputSetupUtils.existsAAINetworksGloballyByName("testNetwork");
+        verify(MOCK_aaiResourcesClient, times(1)).exists(expectedUri);
+    }
+
+    @Test
+    public void existsAAIVolumeGroupGloballyByNameTest() throws Exception {
+        AAIResourceUri expectedUri = AAIUriFactory.createNodesUri(AAIObjectPlurals.VOLUME_GROUP)
+                .queryParam("volume-group-name", "testVoumeGroup");
+        bbInputSetupUtils.existsAAIVolumeGroupGloballyByName("testVoumeGroup");
+        verify(MOCK_aaiResourcesClient, times(1)).exists(expectedUri);
+    }
 }
 
                         }
                     }
                 }
+                if (bbInputSetupUtils.existsAAIVfModuleGloballyByName(instanceName)) {
+                    throw new DuplicateNameException("vfModule", instanceName);
+                }
             } else if ("VOLUMEGROUP".equalsIgnoreCase(type.toString())) {
                 GenericVnf vnf = bbInputSetupUtils.getAAIGenericVnf(workflowResourceIds.getVnfId());
                 Optional<VolumeGroup> volumeGroup = bbInputSetupUtils
                         .getRelatedVolumeGroupByNameFromVnf(workflowResourceIds.getVnfId(), instanceName);
                 if (volumeGroup.isPresent()) {
-                    if (vnf.getModelCustomizationId()
+                    if (volumeGroup.get().getVfModuleModelCustomizationId()
                             .equalsIgnoreCase(reqDetails.getModelInfo().getModelCustomizationId())) {
                         return volumeGroup.get().getVolumeGroupId();
                     } else {
                                 bbInputSetupUtils.getRelatedVolumeGroupByNameFromVfModule(vnf.getVnfId(),
                                         vfModule.getVfModuleId(), instanceName);
                         if (volumeGroupFromVfModule.isPresent()) {
-                            if (vnf.getModelCustomizationId()
+                            if (volumeGroupFromVfModule.get().getVfModuleModelCustomizationId()
                                     .equalsIgnoreCase(reqDetails.getModelInfo().getModelCustomizationId())) {
                                 return volumeGroupFromVfModule.get().getVolumeGroupId();
                             } else {
                         }
                     }
                 }
+                if (bbInputSetupUtils.existsAAIVolumeGroupGloballyByName(instanceName)) {
+                    throw new DuplicateNameException("volumeGroup", instanceName);
+                }
             } else if ("CONFIGURATION".equalsIgnoreCase(type.toString())) {
                 Optional<org.onap.aai.domain.yang.Configuration> configuration =
                         bbInputSetupUtils.getRelatedConfigurationByNameFromServiceInstance(
                                         configuration.get().getConfigurationId()));
                     }
                 }
+                if (bbInputSetupUtils.existsAAIConfigurationGloballyByName(instanceName)) {
+                    throw new DuplicateNameException("configuration", instanceName);
+                }
             }
             return generatedResourceId;
         } catch (DuplicateNameException dne) {
 
                 "vfModule with name (vFModName222), same parent and different customization id (1234567) already exists. The name must be unique."));
         workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "vFModName222", reqDetails,
                 workflowResourceIds);
+    }
 
+    @Test
+    public void validateVfModuleResourceIdInAAINotGloballyUniqueTest() throws Exception {
+        RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
+        WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
+        workflowResourceIds.setVnfId("id111");
+
+        GenericVnf vnf1 = new GenericVnf();
+        workflowResourceIds.setVnfId("id111");
+        when(bbSetupUtils.getAAIGenericVnf("id111")).thenReturn(vnf1);
+
+        when(bbSetupUtils.existsAAIVfModuleGloballyByName("vFModName333")).thenReturn(true);
+        this.expectedException.expect(DuplicateNameException.class);
+        this.expectedException.expectMessage(
+                containsString("vfModule with name vFModName333 already exists. The name must be unique."));
+        workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VFMODULE, "vFModName333", reqDetails,
+                workflowResourceIds);
     }
 
     @Test
         VolumeGroup volumeGroup = new VolumeGroup();
         volumeGroup.setVolumeGroupId("id123");
         volumeGroup.setVolumeGroupName("name123");
+        volumeGroup.setVfModuleModelCustomizationId("1234567");
         workflowResourceIds.setVnfId("id123");
         Optional<VolumeGroup> opVolumeGroup = Optional.of(volumeGroup);
 
         assertEquals("generatedId123", id2);
     }
 
+    @Test
+    public void validateVolumeGroupResourceIdInAAINotGloballyUniqueTest() throws Exception {
+        RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
+        WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
+        workflowResourceIds.setVnfId("id123");
+        GenericVnf vnf = new GenericVnf();
+        vnf.setVnfId("id123");
+        when(bbSetupUtils.getAAIGenericVnf("id123")).thenReturn(vnf);
+        when(bbSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "testVolumeGroup")).thenReturn(Optional.empty());
+
+        when(bbSetupUtils.existsAAIVolumeGroupGloballyByName("testVolumeGroup")).thenReturn(true);
+        this.expectedException.expect(DuplicateNameException.class);
+        this.expectedException.expectMessage(
+                containsString("volumeGroup with name testVolumeGroup already exists. The name must be unique."));
+        workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.VOLUMEGROUP, "testVolumeGroup",
+                reqDetails, workflowResourceIds);
+    }
+
     @Test
     public void validateConfigurationResourceIdInAAITest() throws Exception {
         RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
                 workflowResourceIds);
     }
 
+    @Test
+    public void validateConfigurationResourceIdInAAINotGloballyUniqueTest() throws Exception {
+        RequestDetails reqDetails = setupRequestDetails("id123", "subServiceType123", "1234567");
+        WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
+        workflowResourceIds.setServiceInstanceId("siId123");
+
+        when(bbSetupUtils.getRelatedConfigurationByNameFromServiceInstance("siId123", "testConfig"))
+                .thenReturn(Optional.empty());
+        when(bbSetupUtils.existsAAIConfigurationGloballyByName("testConfig")).thenReturn(true);
+        this.expectedException.expect(DuplicateNameException.class);
+        this.expectedException.expectMessage(
+                containsString("configuration with name testConfig already exists. The name must be unique."));
+        workflowAction.validateResourceIdInAAI("generatedId123", WorkflowType.CONFIGURATION, "testConfig", reqDetails,
+                workflowResourceIds);
+    }
+
     @Test
     public void validateServiceInstanceResourceIdInAAITest() throws Exception {
         WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();